麻烦反序列化JSON对象为
问题描述:
堆栈溢出:麻烦反序列化JSON对象为
我使用JSON.NET都做得很成功之前,但是我现在运行到JSON的一个讨厌的一点,我似乎无法反序列化。很明显,问题在于如何构建类,因此我恳请某人帮助我规划JSON.NET可以成功反序列化的类。
这里是JSON字符串的结构:
[
{
"name":"",
"cost":"",
"cmc":"",
"loyalty":"",
"supertype":"",
"type":"",
"subtype":"",
"power":"",
"toughness":"",
"hand":"",
"life":"",
"rule":"",
"multi":"",
"set":
[ // Note: there could be an infinite number of sets
{
"setcode":"",
"rarity":"",
"number":"",
"artist":"",
"flavor":""
},
{ "setcode":"",
"rarity":"",
"number":"",
"artist":"",
"flavor":""
},
]
}
]
非常感谢你,堆栈溢出
答
你会希望有属性的类为所有这些名字。当涉及到数组时,它实际上是一个对象数组,所以您需要创建具有相同命名属性的另一个类。喜欢的东西:
public class MainObject
{
public string name { get;set; }
// rest of the names as properties
public List<SetObject> @set { get;set; }
}
public class SetObject
{
public string setcode { get;set; }
// rest of your sets names as properties
}
此外,从您的JSON看起来它是一个数组已经所以你要反序列化作为数组:
var objects = JsonConvert.DeserializeObject<MainObject[]>(/* your json here */);
这会给你反序列化数组MainObject就像你的JSON是一个数组。
嗯,我知道这是给我麻烦的设置信息。我试过了一个字符串数组和一个字典。 –