我正在使用Newtonsoft的JSON Parser。
我得到了json作为回应。每次它可能会有所不同。可能的变种:
1.
[
{
"type": "typing",
"updates": [
{
"__type": "qwerty"
}
]
}
]
2.
[
{
"token": 1111,
"type": "msg",
"updates": [
{
"__type": "asdfg",
....
},
{
"__type": "asdfg",
....
},
]
},
{
"type": "typing",
"updates": [
{
"__type": "qwerty"
}
]
}
]
问题是,我的对象应该用什么结构来解析任何类型的json?
var jToken = JToken.Parse(myResponse);
var obj = jToken.ToObject<MyObject>();
class MyObject
{
// what structure should i have here?
}
答案 0 :(得分:2)
它们不是不同的对象。您的服务返回一个对象数组,其中每个对象都包含一个“更新”数组
var myobj = JsonConvert.DeserializeObject<MyObject[]>(json);
public class MyObject
{
public string token;
public string type;
public Update[] updates;
}
public class Update
{
public string __type;
}
答案 1 :(得分:0)
我建议查看一个用于.NET的内置JSON序列标识符。
System.Runtime.Serialization.Json.DataContractJsonSerializer
中有一个(两者中较好者)另一个是 System.Web.Script.Serialization
Here详细说明了如何使用DataContractJsonSerializer
。