最近、動的問題を解決する方法を、プロジェクトにJSONを解析しますが、JSONを解決するための多くの方法があり、我々は検討する必要があるということですか?例えばNewtonsoft.Json.Linq JTokenの下に設けられ、Newtonsoft.Json下JsonConvertが利用可能、などをjオブジェクト。
jオブジェクト | オブジェクトのJSONを操作するための |
JArray | 配列のJSONを操作するための |
JValue | 値の配列 |
JProperty | オブジェクト属性が「キー/値」の形に表し、 |
JToken | LINQのは、JSONにクエリの結果を格納するために使用しました |
私たちは、主に、今日さまざまな分析法適用のシナリオと使用方法について説明します。
1、jオブジェクト
jオブジェクトの操作対象、他の種類を解決するために使用される場合は、JSONのNewtonsoft.Json.JsonReaderExceptionを報告されます。
jオブジェクトjオブジェクト= 新しいJOBJECT(); jObject.Add(新 JProperty(" 名前"、" caixukun " )); jObject.Add(新しい JProperty(" スキル"、新 jオブジェクト(新しい JProperty(" ID "、1)、新しい JProperty(" 名前"、" 撩妹" ))))。 Console.WriteLineを(jObject.ToString());
结果:
{
"名前": "caixukun"、
"ID":1、
"名前": "撩妹"
}
}
2、JArray
他の種類を解決するために使用される場合は、配列を操作するためのJArrayは、JSON Newtonsoft.Json.JsonReaderExceptionに報告されます。
JArray ARR = 新しいJArray(); arr.Add(新しい JValue(1 )); arr.Add(新しい JValue(2 ))。 arr.Add(新しい JValue(3 )); Console.WriteLineを(arr.ToString());
结果:
[
1、
2、
3
]
3、JToken
文字列の JSON = " {\"名\」:\ "ジャック\"、\ "年齢\":34、\ "同僚\":[{\ "名\":\ "トム\"、\ "年齢\" :44}、{\ "名\": "アベル\" \ \ "年齢\":29}]} 」。 // 获取员工名称 jオブジェクトjオブジェクト= JObject.Parse(JSON)。 VaRの名前= jObject.Value < 文字列 >(" 名前" ); Console.WriteLineを(名); // 获取员工年龄 JToken jToken = jObject.SelectToken(" 年齢" ); Console.WriteLineを(jToken.ToString())。 Console.WriteLineを(jToken1.ToString())。 Console.WriteLineを(" ============================= " ); // 获取员工同事的所有姓名 のvar名= からのスタッフでjToken1.Children() を選択(文字列)スタッフ[ " 名前" ]; // VAR名= jObject.SelectToken( "同僚")(P => P [ "名前"])を選択しToListメソッド()。。。 foreachの(VARのアイテムで名) { Console.WriteLineを(アイテム)。 } Console.WriteLineを(" =============================" ); // ジャック年齢修正 jオブジェクトを[ " 年齢" ] = 99 ; Console.WriteLineを(jObject.ToString()); // 登米年齢同僚変更 jToken1は、[ 0 ] [ " 年齢は" ] = 45 ; コンソールを。 WriteLineメソッド(jObject.ToString()); Console.WriteLineを(" ============================= " ); // アベル出発 jオブジェクト[ " 同僚" ] [ 1 ] .remove(); Console.WriteLineを(jObject.ToString()); //はジャックの同僚を削除します jObject.Remove(" 同僚" ); Console.WriteLineを(jObject.ToString()); Console.WriteLineを(" ========================= ==== 「); // ジャック部門は、情報不足 jオブジェクトを[ 」年齢「 ] .Parent.AddAfterSelf(新新 JProperty(」部署「」大統領のオフィス" )); // 新しい従業員へのジェリー JOBJECTリンダ= 新新 jオブジェクト(新新 JProperty(「名前」、「リンダ」)、新着JProperty(" 年齢"、" 23 " )); jObject.Add(新しい JProperty(" 同僚"、新JArray(){}リンダ))。 Console.WriteLineを(jObject.ToString())。