我不得不处理第三方json数据。我正在尝试使用JSON.Net,但我有点挣扎,因为在数据中,每次都给同一类型赋予不同的名称。见下面的例子。
{
"success":"1",
"return":{
"Mike":{
"name":"Mike",
"age":"21",
"hobbies":[
{
"name":"sailing"
},
{
"name":"volleyball"
}
]
}
}
}
在这里你可以看到 - 在这个用例子来说明情况 - 基本上是一个人物对象被返回,但它被称为“迈克”而不是人。下一个可能被称为“Sheryl”等。 我想使用以下方法将整个事件反序列化: var deserialized = JsonConvert.DeserializeObject(jsonString);
但是我不确定如何构建x,因为它可能会有所不同。
我看过JsonConverter,但我看不出在这种情况下会有什么帮助。
非常感谢任何指导。
答案 0 :(得分:3)
使用Dictionary<string,Person>
获取属性Return
var obj = JsonConvert.DeserializeObject<YourObject>(json);
public class Hobby
{
public string Name { get; set; }
}
public class Person
{
public string Name { get; set; }
public string Age { get; set; }
public List<Hobby> Hobbies { get; set; }
}
public class YourObject
{
public string Success { get; set; }
public Dictionary<string,Person> Return { get; set; }
}