簡體   English   中英

將復雜的JSON反序列化為對象-出現錯誤無法反序列化當前JSON數組(例如[1,2,3])

[英]Deserialize complex JSON into Object - getting error Cannot deserialize the current JSON array (e.g. [1,2,3])

我有一個JSON對象字符串,我試圖將其反序列化為已創建的C#對象,但是在反序列化過程中始終出現錯誤。無法將當前JSON數組(例如[1,2,3])反序列化為類型,因為該類型需要JSON對象(例如{\\“ name \\”:\\“ value \\”})才能正確反序列化。

JSON似乎在數組中包含數組,我懷疑這是導致問題的原因,但是我沒有運氣找出確切的問題。 我必須承認在處理JSON數據時我是新手,所以我在這里找到了自己。

我已經嘗試了各種方法,包括使用在線工具為我生成類,但這並沒有給我令人滿意的結果。 我找不到的所有示例看起來都不像我在這里使用的JSON,這給我造成了一些障礙。

有問題的JSON:

{
  "a": "2019-08-08T19:34:25Z",
  "b": [
    {
      "c": "asdf"
    },
    [
      "d",
      "e",
      "f"
    ],
    {
      "g": "sdfg"
    },
    {
      "h": "dfgh"
    },
    {
      "i": "fghj"
    },
    {
      "j": "ghjk"
    },
    [
      "k",
      10,
      10
    ]
  ]
}

我嘗試反序列化的對象:

    public class ClassA
    {
        public DateTime a { get; set; }
        public List<ClassB> b { get; set; }
    }

    public class ClassB
    {
        public string c { get; set; }
        public List<string> stringList1 { get; set; }
        public string g { get; set; }
        public string h { get; set; }
        public string i { get; set; }
        public string j { get; set; }
        public List<string> stringList2 { get; set; }
    }

最后,我用來反序列化的代碼:

ClassA jclassa = JsonConvert.DeserializeObject<ClassA>(strdata);

我希望我可以將此JSON加載到此類中,而不會引入過多奇特的外觀。

您使用的JSON與要反序列化為的對象類具有不同的結構。

與您的對象匹配的JSON示例如下所示

{
  "a": "2019-08-08T19:34:25Z",
  "b": [
    {
      "c": "asdf",
      "stringList1": [
        "d",
        "e",
        "f"
      ],
      "g": "sdfg",
      "h": "dfgh",
      "i": "fghj",
      "j": "ghjk",
      "stringList2": [
        "k",
        10,
        10
      ]
    }
  ]
}

暫無
暫無

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

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