[英]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.