如何解析此JSON?我不知道如何定义这个结构:
[
[{
"timestamp": 1324374926
}],
[{
"id": "9",
"neme": "qqq"
}, {
"id": "19",
"neme": "qqq"
}, {
"id": "29",
"neme": "qqq"
}]
]
JSON解析代码:
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Categor[]));
Categor[] result = (Categor[])serializer.ReadObject(responseStream);
通过定义数据合同......
编译器正在返回:
System.InvalidCastException:在。的InvalidCastException System.Runtime.Serialization.Json.DataContractJsonSerializer.ConvertObjectToDataContract(DataContract
的上下文
contract,Object value,XmlObjectSerializerReadContextComplexJson
上下文) System.Runtime.Serialization.Json.ObjectToDataContractConverter.ConvertICollectionToCollectionDataContract(DataContractJsonSerializer
serializer,CollectionDataContract contract,Object deserializedValue,
XmlObjectSerializerReadContextComplexJson上下文) System.Runtime.Serialization.Json.DataContractJsonSerializer.ConvertObjectToDataContract(DataContract
contract,Object value,XmlObjectSerializerReadContextComplexJson
在System.Runtime.Serializati
如何解析此JSON?
重要的是,对于普通的JSON我正在创建fe:
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Categor[]));
Categor[] result = (Categor[])serializer.ReadObject(responseStream);
[
{
"category": "A",
"subcategories": [
{
"id": "QW",
"name": "A",
"ranking": 100,
"isVisible": true
},
{
"id": "QWN0d",
"name": "Pol",
"ranking": 101,
"isVisible": false
},
...
数据模型是:
[DataContract]
public class Articlesubcat
{
[DataMember(Name = "id")]
public string id { get; set; }
[DataMember(Name = "name")]
public string name { get; set; }
[DataMember(Name = "ranking")]
public string ranking { get; set; }
[DataMember(Name = "isVisible")]
public string isVisible { get; set; }
}
[DataContract]
public class Categor
{
[DataMember(Name = "category")]
public string category { get; set; }
[DataMember(Name = "subcategories")]
public List<Articlesubcat> subcat { get; set; }
}
但是在这个JSON中,我有:
[
[
{
"timestamp": 1324374926
}
],
[
{
"id": "9",
"neme": "qqq"
},
{
"id": "19",
"neme": "qqq"
},
{
"id": "29",
"neme": "qqq"
}
]
]
正如我所知,我不知道如何为这2个对象(数组对象)预备模型,或者我甚至不知道这个结构的名称是什么。
答案 0 :(得分:0)
即使您没有向我们显示Categor
的声明,Categor[]
也不能是您的JSON数据的正确根类型。
JSON数据是数组的数组。因此,您的根数据类型必须类似于Categor[][]
。
<强>更新强>
感谢发布Categor
的声明。现在很清楚,您的JSON示例不是Categor
个实例的数组。相反,它是两个元素的数组。第一个是一些未知对象类型的数组。它包含一个名为timestamp
的属性。所以它不能是Categor
实例。第二个元素是Categor
个实例的数组(可能是您期望的部分)。
幸运的是,您可以使用根类型Categor[][]
解析JSON,然后只使用最外层数组的第二个元素。如果这不起作用,您可能不得不切换到另一个JSON库,因为DataContractJsonSerializer
对混合类型的数组有一些限制。