JSONの動的解析

オリジナル: JSONの動的解析

 最近、動的問題を解決する方法を、プロジェクトに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())。

参考:https://www.cnblogs.com/klsw/p/5904573.html

おすすめ

転載: www.cnblogs.com/lonelyxmas/p/11546134.html