簡體   English   中英

在C#中反序列化復雜的JSON數據

[英]Deserialize complex JSON data in C#

我只是C#編程的業余愛好者。 現在我有一個JSON數據,看起來像下面

{
  type: "xxx",
  width: "xxx",
  dataSource: {
      "chart": {
          "caption": "xxx"
       },
      "data": [
       {},
       {} 
      ]
  } 
}

我將整個數據作為轉義字符串。 現在當我使用JavaScriptSerializer時在Unescape之后,如下

var data = ser.Deserialize<Dictionary<String, Object>>(chartData);

我可以得到“類型”,“寬度”為

data["width"]
data["type"]

現在,我必須獲取“標題”的值。 關於如何獲得該建議的任何建議,我相信都需要更改字典結構,但由於缺乏C#知識,我被堆積了

如果您知道對象的方案,則可以創建一個類來表示,然后將json反序列化為該類:

YourKnownClass obj = JsonConvert.DeserializeObject<YourKnownClass>(json);
Console.WriteLine(obj.dataSource.chart.caption.Value);

另一種選擇是使用動態類型(如果您知道架構並可以創建匹配的C#類,那么就沒有充分的理由使用動態對象。這也會對性能產生影響):

dynamic obj = JsonConvert.DeserializeObject<dynamic>(json);
Console.WriteLine(obj.dataSource.chart.caption.Value);

順便說一句,在此示例中,我使用的是流行的json.net庫。

暫無
暫無

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

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