簡體   English   中英

在C#中解析JSON數據

[英]Parsing JSON data in C#

我有一個JSON數據如下

 {"id": "367501354973","from": {
  "name": "Bret Taylor",
  "id": "220439"   }

由IDictionary [String,Object]的對象(結果)返回

在我的C#代碼中:

我已經制作了一個用於存儲JSON值類,如下所示

public class SContent
{
    public string id { get; set; }
    public string from_name { get; set; }
    public string from_id { get; set; }
}

我的主要C#函數存儲解析JSON數據並將值存儲在類屬性內,如下所示:

List<object> data = (List<object>)result["data"];
            foreach (IDictionary<string, object> content in data)
            {
                SContent s = new SContent();

                    s.id = (string)content["id"];
                    s.from_name = (string)content["from.name"];
                    s.from_id = (string)content["from.id"];

            }

當我執行此代碼時,出現一個異常,提示系統找不到密鑰“ from.name”和“ from.id”

當我注釋這兩行時(s.from_name =(string)content [“ from.name”]; s.from_id =(string)content [“ from.id”];), 我的代碼運行良好。

我認為我無法正確引用嵌套的JSON數據。

誰能驗證一下,請告訴我如何在C#中引用JSON中的嵌套數據?

謝謝

我不確定您如何解析JSON字符串。 您是否正在使用Framework中的類進行反序列化?

您可以使用System.Web.Script.Serialization命名空間中定義的JavaScriptSerializer類(您可能需要添加對System.Web.dll的引用)

使用該類,您將像這樣編寫代碼:

public class SContent
{
    public string id { get; set; }
    public SFrom from { get; set; }
}

public class SFrom 
{
    public string name { get; set; }
    public string id { get; set; }
}

然后反序列化如下所示:

var json = new JavaScriptSerializer();
var result = json.Deserialize<SContent>(/*...json text or stream...*/);

請參閱MSDN上的JavaScriptSerializer 您可能還想看看這個類似的問題

暫無
暫無

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

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