国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

詳解ASP.NET提取多層嵌套json數據的方法

2024-07-10 13:32:00
字體:
來源:轉載
供稿:網友

本文實例講述了ASP.NET利用第三方類庫Newtonsoft.Json提取多層嵌套json數據的方法,具體例子如下。

假設需要提取的json字符串如下:

{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}}

先引用命名空間:

using Newtonsoft.Json;using Newtonsoft.Json.Linq;

可以把上面的json字符串看成一個對象,只要編寫對應的類即可(如果使用VS2013進行開發,可以通過“編輯--選擇性粘貼--將JSON粘貼為類”快速地將json字符串轉換為實體類)

 public class UserInfo {  public string name;  public int age;  public address addr; } public class address {  public string city;  public string province; }

1、將json字符串轉換為實體對象的代碼如下:

string jsonData="{/"name/":/"lily/",/"age/":23,/"addr/":{/"city/":guangzhou,/"province/":guangdong}}";UserInfo user=(UserInfo)JsonConvert.DeserializeObject(jsonData, typeof(UserInfo));

2、讀取json中某個屬性的值可以使用一下代碼:

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();

3、解釋多層嵌套json,獲取任意屬性的值:

如果需要處理的json字符串如下:

{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}};

然后讓你輸入一個對象,如“city”,系統就會輸出“guangzhou”,輸入“age”,就輸出“23”。由于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;  }

調用GetJsonValue的代碼:

string jsonData = "{/"name/":/"lily/",/"age/":23,/"addr/":{/"city/":/"guangzhou/",/"province/":/"guangdong/"}}";JObject jsonObj = JObject.Parse(jsonData);Response.Write(GetJsonValue(jsonObj.Children(), "province"));

如果是多層嵌套的數組,也可以使用以下代碼:

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"]);

4、JSON轉XML:

 

復制代碼 代碼如下:

string xmlstr=((XmlDocument)JsonConvert.DeserializeXmlNode(jsonData)).InnerXml.ToString();

 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高安市| 略阳县| 城市| 隆回县| 哈巴河县| 工布江达县| 隆林| 岳池县| 阿拉善右旗| 桃园市| 五华县| 长治市| 西林县| 旬邑县| 教育| 潮安县| 蒲江县| 天峨县| 怀远县| 扬州市| 宝清县| 台山市| 克东县| 德江县| 集安市| 彭阳县| 新营市| 隆子县| 河曲县| 金乡县| 边坝县| 阜康市| 克拉玛依市| 芷江| 丽水市| 长葛市| 九龙城区| 嘉兴市| 咸宁市| 东光县| 原阳县|