まず普及のヒント:
JSONとJSはHuzhuanオブジェクト
JSON.stringify()メソッドを使用してJSON文字列オブジェクトからの変換を達成するために:
VAR JSON = JSON.stringify({ 'Vinkong'、B '空'})。//结果是 "{ "": "Vinkong"、 "B": "空"}
JSONからJSON.parse()メソッドを使用してオブジェクトを変換を達成するために:
VAR OBJ = JSON.parse( '{ "": "Vinkong"、 "B": "空"}')。//结果是{ 'Vinkong'、B '空'}
以下は、デモが用意されて
学生のクラスを確立します
使用してNewtonsoft.Jsonを。 使用してシステムを。 使用してSystem.Collections.Genericを。 使用してSystem.Linqのを。 使用してSystem.Runtime.Serializationを。 使用してSystem.Textのを。 使用してSystem.Threading.Tasksを。 使用してSystem.Web.Script.Serializationを。 名前空間ConsoleApplication1 { [のDataContract] // DataContractJsonSerializer方式必须加的契约 クラスの学生 { プライベート 文字列名; [DataMemberプロパティ] // DataContractJsonSerializer方式必须加的契约 [ScriptIgnore] //JavaScriptSerializerは、シリアル化属性ではない使用して標識されている [JsonIgnore] // 属性ないタグ配列の使用JSON.NET実施形態 パブリック 文字列_Name { GET { 返す;}名前 SET {名前= 値;} } [データメンバー] プライベート INT 年齢。 公共 INT _Age { GET { 戻り年齢;} SET {年齢= 値;} } [データメンバー] プライベート 文字列セックス、 公共 の文字列_Sex { 取得 { 戻りセックスを、} 集合 {性別= 値。} } } }
書き込みテストコード:
使用してシステムを。 使用してSystem.Collections.Genericを。 使用してSystem.Linqのを。 使用してSystem.Textのを。 使用してSystem.Threading.Tasksを。 使用してSystem.Web.Script.Serializationを。 使用してNewtonsoft.Jsonを。 使用してSystem.Runtime.Serializationを。 使用してSystem.Runtime.Serialization.Jsonを。 使用してSystem.IOを。 名前空間ConsoleApplication1 { クラスプログラム { 静的な 無効メイン(文字列[] argsを) { #region第一种方式:使用JavaScriptSerializer方式 STU学生 = 新新学生(); stu._Name = " vinkong " ; stu._Age = 15 ; stu._Sex = " 男性" ; JavaScriptSerializer jsonSerialize = 新新)JavaScriptSerializer(; // 導入される名前空間JavaScriptSerializerウェイの必要性を使用して、こので組み立てSystem.Web.Extensions.dllに // 使用してSystem.Web.Script.Serialization; // 注:利用可能[ScriptIgnore]マークは、シリアル化の属性ではありません // 標的配列オブジェクトの 文字列= strjson jsonSerialize.Serialize(STU); // JSONは、デシリアライズ STU = jsonSerialize.Deserialize <学生> (strjsonを); Console.WriteLineを(" 1. JavaScriptSerializerモード" ); Console.WriteLineを(" シリアル化:" + strjson); Console.WriteLineを(" デシリアライズ:" + stu._Name + "" + " " + "" + stu._Age + "" + " " + " " + STU。_Sex + ""); #Endregion #regionの使用JSON.NET方式 // 名前空間ライブラリを使用Json.NET Newtonsoft.Json使用を導入する必要性; // 注:利用可能なタグ配列の[JsonIgnore]は属性はありません 学生STU2は= 新しい新しい(学生) ; stu2._Name = " vinkong2 " ; stu2._Age = 15 ; stu2._Sex = " F " ; // オブジェクトのシリアル化JSON 文字列 strjson2 = JsonConvert.SerializeObject(STU2); // JSONデシリアライズ STU2 = JsonConvert.DeserializeObject <学生> (strjson2)。 Console.WriteLineを(" 2.使用JSON.NET方式" ); Console.WriteLineを(" 序列化:" + strjson2)。 Console.WriteLineを(" 反序列化:" + stu2._Name + "" + " " + "" + stu2._Age + "" + " " + " " + stu2._Sex + "" )。 // System.Runtime.Serialization.dll。ではでは、名前空間を導入するDataContractJsonSerializerウェイの必要性を使用しています。 // 使用してSystem.Runtime.Serialization.Json; // エンティティ契約[DataMemberプロパティ]、[のDataContract]、DataContractJsonSerializerのシリアライズとデシリアライズを使用して追加する必要があり、他の2つの方法に追加することができます追加しないでください。 Stu3 =学生新しい新しい学生(); stu3._Name = " vinkong3 " ; stu3._Age = 22である。 stu3._Sex = " F " 、 文字列 strjson3 = "" ; // オブジェクトのシリアル化JSON 使用します(MemoryStreamをストリーム= 新しいのMemoryStream()) { DataContractJsonSerializer jsonSerialize2 = 新しいDataContractJsonSerializer(stu3.GetType())。 jsonSerialize2.WriteObject(ストリーム、stu3)。 strjson3 = Encoding.UTF8.GetString(stream.ToArray())。 } // JSON反序列化对象 使用(MemoryStreamをストリーム= 新しいのMemoryStream(Encoding.UTF8.GetBytes(strjson3))) { DataContractJsonSerializer jsonSerialize3 = 新しい DataContractJsonSerializer(typeof演算(学生))。 stu3 = (学生)jsonSerialize3.ReadObject(ストリーム); } Console.WriteLineを(" 3.使用DataContractJsonSerializer方式" )。 Console.WriteLineを(" 序列化:" + strjson3)。 Console.WriteLineを(" 反序列化:" + stu3._Name + "" + " " + "" + stu3._Age + "" + " " + " " + stu3._Sex + "" )。 Console.ReadKey(); #endregion } } }
シリアライズとデシリアライズ、優れた性能を利用するためにJSON.NETの方法。