JSONのシリアライズとデシリアライズの3つの方法で.NET

まず普及のヒント:

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の方法。

 

おすすめ

転載: www.cnblogs.com/Vinkong/p/12599013.html