簡體   English   中英

如何解析此JSON結構?

[英]How do I parse this JSON structure?

如何解析此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
合同,對象值,XmlObjectSerializerReadContextComplexJson
上下文)
System.Runtime.Serialization.Json.ObjectToDataContractConverter.ConvertICollectionToCollectionDataContract(DataContractJsonSerializer
序列化程序,CollectionDataContract合同,對象反序列化值,
XmlObjectSerializerReadContextComplexJson上下文),網址為
System.Runtime.Serialization.Json.DataContractJsonSerializer.ConvertObjectToDataContract(DataContract
合同,對象值,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個對象(數組對象)進行模型預修,或者我什至不知道此結構的名稱是什么。

即使您沒有向我們顯示Categor的聲明, Categor[]也不是JSON數據的正確根類型。

JSON數據是某物陣列陣列 因此,您的根數據類型必須類似於Categor[][]

更新:

感謝您發布Categor的聲明。 現在很明顯,您的JSON示例不是Categor實例的數組。 相反,它是兩個元素的數組。 第一個是一些未知對象類型的數組。 它包含一個名為timestamp的屬性。 因此它不能是Categor實例。 第二個元素是Categor實例的數組(可能是您期望的部分)。

幸運的是,您可以使用根類型Categor[][]解析JSON,然后僅使用最外層數組的第二個元素。 如果這不起作用,則由於DataContractJsonSerializer對於混合類型數組有一些限制,您可能必須切換到其他JSON庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM