2016-08-20 58 views
0

如何使用c#编程语言获取此代码的地址项目。我用过Newstonsoft.Json.JsonConvert.DeserializeObject(Headerdata); 但它是错误的。将对象文字javascript转换为通用语言c#

<script> 
 
    var Headerdata = { 
 
    config : { debug : false } 
 
    data :{ 
 
      "UserData" : {"Name":"Mahtub","server":" mainSever", "isAdmin":true }, 
 
      "mainData" : { 
 
      "id": 02134346546 , 
 
      "unitData" :{ 
 
       "units" :6, 
 
       "pageData":{ 
 
       "UserName":"Admin", 
 
        "Address":[ 
 
        "city":"eastJava", 
 
        "country":"Indonesia" 
 
        ] 
 
       } 
 
      } 
 
     } 
 
    
 
    } 
 
    } 
 
</script>

+0

您正在尝试使用数组作为对象,而不是将数组格式化为对象。 – Script47

+0

你得到了什么错误? – DWright

+0

Newtonsoft.Json.JsonReaderException:解析值时遇到意外的字符:<。路径'',第0行,位置0. 我知道了,当我运行单元测试? –

回答

0

你有错误的一个令人难以置信的数量与该对象,因为它不是有效的JSON(也不是即使一个有效的对象结构)。为了立即解析对象而不首先将其序列化到JSON,它需要进行更新如下:

{ 
    "config": { 
     "debug": false 
    }, 
    "data": { 
     "UserData": { 
      "Name": "Mahtub", 
      "server": " mainSever", 
      "isAdmin": true 
     }, 
     "mainData": { 
      "id": "02134346546", 
      "unitData": { 
       "units": 6, 
       "pageData": { 
        "UserName": "Admin", 
        "Address": [{ 
         "city": "eastJava", 
         "country": "Indonesia" 
        }] 
       } 
      } 
     } 
    } 
} 

注意,所有的键名已妥善双引号括起来,在配置后加入一个逗号对象,而“地址”现在是数组内的一个对象,而不仅仅是一个数组。

当您构建一个您想要反序列化的对象时,应始终使用适当的序列化器对其进行序列化。你不应该手工制作它。此外,您应该始终使用JSON validator以确保其结构合理。

+0

哦,不,您更改了代码 –

+0

@ R.Mahtub是的,因为您的代码不正确。你不能反序列化格式不正确的东西。就这么简单。 –

+0

它是JavaScript不是完全。其实我也对代码感到困惑。因为它不是json –

相关问题