asp.net提取多層嵌套json數(shù)據(jù)的方法
本文實例講述了asp.net提取多層嵌套json數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:
在.net 2.0中提取這樣的json:
引用命名空間:
using Newtonsoft.Json; using Newtonsoft.Json.Linq;
可以把上面的JSON看成一個對象.你只要寫對應的類即可
public class UserInfo
{
public string name;
public int age;
public address addr;
}
public class address
{
public string city;
public string province;
}
然后在解析的地方這樣寫:
string jsonData="{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":guangzhou,\"province\":guangdong}}";
UserInfo user=(UserInfo)JsonConvert.DeserializeObject(jsonData, typeof(UserInfo));
得到City的值只要:user.addr.City;
這樣實現(xiàn)也行
JObject jsonObj = JObject.Parse(jsonData); string name=jsonObj ["name"].ToString(); string age=jsonObj ["age"].ToString(); string city=((JObject )jsonObj ["addr"])["city"].ToString(); string province=((JObject )jsonObj ["addr"])["province"].ToString();
如何這個json是動態(tài)的呢?譬如讓你輸入一個json,如
然后讓你輸入一個對象,如city,然后系統(tǒng)會輸出guangzhou這個值,那這樣的話,json就是動態(tài)生成的了,我想了解有沒有讀取這樣的json的方法。(注意,json是多級嵌套的。)
就用遍歷
public string GetJsonValue(JEnumerable<JToken> jToken,string key)
{
IEnumerator enumerator = jToken.GetEnumerator();
while (enumerator.MoveNext())
{
JToken jc = (JToken)enumerator.Current;
if (jc is JObject||((JProperty)jc).Value is JObject)
{
return GetJsonValue(jc.Children(), key);
}
else
{
if (((JProperty)jc).Name == key)
{
return ((JProperty)jc).Value.ToString();
}
}
}
return null;
}
在調(diào)用的時候:
string jsonData = "{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":\"guangzhou\",\"province\":\"guangdong\"}}";
JObject jsonObj = JObject.Parse(jsonData);
Response.Write(GetJsonValue(jsonObj.Children(), "province"));
如果有多層嵌套的數(shù)組
string jsonData = "{\"addr\":[{\"city\":\"guangzhou\",\"province\":\"guangdong\"},{\"city\":\"guiyang\",\"province\":\"guizhou\"}]}";
JObject jsonObj = JObject.Parse(jsonData);
JArray jar = JArray.Parse(jsonObj["addr"].ToString());
JObject j = JObject.Parse(jar[0].ToString());
Response.Write(j["city"]);
JSON轉(zhuǎn)XML:
PS:關于json格式數(shù)據(jù)操作小編這里推薦幾款本站的在線工具供大家免費使用,相信在以后的開發(fā)中可以派上用場:
在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
C語言風格/HTML/CSS/json代碼格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json
json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat
更多關于asp.net相關內(nèi)容感興趣的讀者可查看本站專題:《asp.net操作json技巧總結》、《asp.net字符串操作技巧匯總》、《asp.net操作XML技巧總結》、《asp.net文件操作技巧匯總》、《asp.net ajax技巧總結專題》及《asp.net緩存操作技巧總結》。
希望本文所述對大家asp.net程序設計有所幫助。
- 使用jQuery向asp.net Mvc傳遞復雜json數(shù)據(jù)-ModelBinder篇
- 使用ASP.NET一般處理程序或WebService返回JSON的實現(xiàn)代碼
- asp.net(C#)解析Json的類代碼
- asp.net JSONHelper JSON幫助類
- Jquery 組合form元素為json格式,asp.net反序列化
- asp.net+jquery Jsonp使用方法
- Jquery中getJSON在asp.net中的使用說明
- ASP.NET JSON字符串與實體類的互轉(zhuǎn)換示例代碼
- jQuery+ajax+asp.net獲取Json值的方法
- 解決Asp.net Mvc返回JsonResult中DateTime類型數(shù)據(jù)格式問題的方法
- asp.net使用DataTable構造Json字符串的方法
- ASP.NET中XML轉(zhuǎn)JSON的方法實例
相關文章
ASP.NET實現(xiàn)級聯(lián)下拉框效果實例講解
這篇文章主要為大家詳細介紹了ASP.NET實現(xiàn)級聯(lián)下拉框效果實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-09-09
ASP.NET 運行時錯誤: 沒有為擴展名“.asax”注冊的生成提供程序修正版
ASP.NET 運行時錯誤: 沒有為擴展名“.asax”注冊的生成提供程序??梢栽?machine.config 或 web.config 中的 <compilation><buildProviders> 節(jié)注冊一個。2009-01-01
asp.net MVC利用ActionFilterAttribute過濾關鍵字的方法
這篇文章主要介紹了asp.net MVC利用ActionFilterAttribute過濾關鍵字的方法,結合實例形式分析了ActionFilterAttribute過濾關鍵字的原理與相關實現(xiàn)技巧,需要的朋友可以參考下2016-03-03
IIS 瀏覽aspx頁面出現(xiàn)無法顯示XML頁的解決方法分享
這篇文章介紹了IIS 瀏覽aspx頁面出現(xiàn)無法顯示XML頁的解決方法,有需要的朋友可以參考一下2013-11-11
asp.net(c#)復數(shù)類(復數(shù)加減乘除四則運算)
asp.net(c#)復數(shù)類(復數(shù)加減乘除四則運算)...2007-06-06

