Den*_*nys 2 c# json asp.net-mvc-4
我收到一个JSON obejct来使用MVC4启动一个Web会话.我需要将它解析为C#对象以供以后使用.我不能改变我收到的对象 - 它来自第三方.
我用来解析的方法:
MyClass jsonObject = new MyClass();
//The 2 lines below will not work with the given answer
//JavaScriptSerializer serializer = new JavaScriptSerializer();
//jsonObject = serializer.Deserialize<MyClass >(jsonString);
//Use this method instead
jsonObject = JsonConvert.DeserializeObject<MyClass>(jsonString);
Run Code Online (Sandbox Code Playgroud)
问题: 由于内部对象的"0"名称,我无法为JSON的这一部分定义C#类.
JSON:
{
"header": {
"to": {
"data": [],
"0": {
"data": [],
"value": "1101",
"domain": "DUNS"
}
},
"from": {
"data": [],
"0": {
"data": [],
"value": "1101",
"domain": "NetworkID"
}
},
"sender": {
"data": {
"UserAgent": "Test Client v1"
},
"0": {
"data": {
"SharedSecret": "test"
},
"value": "testing@smith.com",
"domain": "testClientID"
}
}
},
...
}
Run Code Online (Sandbox Code Playgroud)
注意:我已尝试在线json到C#类生成器,要么失败,要么创建一个名为'0'的类,当然不能编译.
评论: MyClass会是这样的:
public class Header
{
public ToClass to = new ToClass ();
public FromClass to = new FromClass ();
}
public class ToClass
{
public Data[];
public zero 0 = new zero();
}
public class zero
{
public string data { get; set; }
public string value { get; set; }
public string domain { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我相信你可以使用json.NET的属性属性系统来纠正这个问题,文档就在这里. http://james.newtonking.com/json/help/index.html?topic=html/SerializationAttributes.htm
public class ToClass
{
public Data[];
[JsonProperty(PropertyName = "0")]
public zero Zero = new zero();
}
Run Code Online (Sandbox Code Playgroud)
这将使得反序列化器将使用名为0的C#属性命名的json属性等同Zero
| 归档时间: |
|
| 查看次数: |
706 次 |
| 最近记录: |