ホームページ >バックエンド開発 >C#.Net チュートリアル >asp.net で多層のネストされた JSON データを抽出する方法
この記事では、asp.net が多層ネストされた json データを抽出する方法を主に紹介し、asp.net の json 形式データを解析する手順と関連する操作スキルを例の形式で詳細に分析します。友人はそれを参照できます
この記事では、asp.net で多層のネストされた json データを抽出する方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
.net 2.0 でこのような json を抽出します:
コードをコピーします コードは次のとおりです:
{"name":"lily"," age":23," addr":{"city":guangzhou,"province":guangdong}}
Reference namespace:
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;
これも実装できます
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 はどうなっているのでしょうか?たとえば、
のようなjsonを入力します。コードをコピーします コードは次のとおりです:
{"name":"lily","age":23,"addr":{"city" :guangzhou,"province": guangdong}};
次に、city などのオブジェクトを入力すると、システムは値 guangzhou を出力します。この場合、json は動的に生成されるかどうかを知りたいです。このような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; }
を使用するだけです:
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"]);
JSON へXML:
コードをコピー コードは次のとおりです:
string xmlstr=((XmlDocument)JsonConvert.DeserializeXmlNode(jsonData)).InnerXml.ToString();
その他の asp.net による多層ネストの抽出json データメソッドに関連する記事は、PHP 中国語 Web サイトに注意してください。