C#json文字列のシリアル化と逆シリアル化

この記事は以下から複製されます:

https://www.cnblogs.com/shang201215019/p/7907655.html

 兄は非常に詳細に書いた。元のテキストを読むことをお勧めします。

 Jsonとは何 ですか?

       Json [javascriptオブジェクト表現メソッド]、

       軽量のデータ交換フォーマットであり、非常に簡単に読み書きできます。

       また、コンピューターによる変換と生成は簡単で、言語に完全に依存しません。

 

Jsonは、次の2つのデータ構造をサポートしています。

  • キーと値のペアのコレクション-さまざまな異なるプログラミング言語がこのデータ構造をサポートしています;
  • リストタイプの値の順序付けられたコレクション-これには、配列、セット、ベクトル、またはシーケンスなどが含まれます

Jsonには次の式があります。

     1.オブジェクト

           順序付けられていない「キー/値」であるオブジェクトは、中括弧「{」で始まり、中括弧「}」で終わります。

           各「キー」の後にコロンがあり、コンマを使用して複数のキーと値のペアを区切ります。

           例如:var user = {"name": "Manas"、 "gender": "Male"、 "birthday": "1987-8-8"}   

     2.アレイ

           値の順序を設定するには、配列は角かっこ「[」で始まり、角かっこ「]」で終わります。

           すべての値はコンマで区切られ、

           例えば:

                   var userlist = [

                                           {"user":{"name": "Manas"、 "gender": "Male"、 "birthday": "1987-8-8"}}、 
                                           {"user":{"name": "Mohapatra"、 "男性": "女性"、 "誕生日": "1987-7-7"}}

                                           ]

     3.文字列

            引用符でマークされ、円記号で区切られた任意の数のUnicode文字。

            (注:引用符、コンマ、およびコロンはすべて英語の半値記号であり、二重引用符のみにすることができます)

            例如:var userlist = "{\" ID \ ":1、\" Name \ ":\" Manas \ "、\" Address \ ":\" India \ "}" 

 

C#での使用方法:           

           C#では、次のツールを使用してJson形式のコンテンツを解析することがよくあります。

            Newtonsoft.Jsonは、.NetのオープンソースのJsonシリアル化および逆シリアル化ツールであり、公式アドレスはhttp://www.newtonsoft.com/jsonです。

特定の用途:

1.プロジェクトを右クリック=>NugetPackage Management=>Newtonsoft.Jsonを追加

2.名前空間を導入します

1Newtonsoft.Jsonを使用します。

3.クラスを定義します

     public class Student 
     {   
        public int ID {get; セットする; } 
 
        public string Name {get; セットする; } 

        public int Age {get; セットする; } 

        public string Sex {get; セットする; } 
     }

 4.エンティティオブジェクトをシリアル化および逆シリアル化します

//シリアル化されたオブジェクトStudentone 
    = new Student()
    {ID = 1、Name = "Wusong"、Age = 250、Sex ="Male"}; 

    //シリアル化された
    文字列jsonData=JsonConvert.SerializeObject(one); 

    Console。WriteLine( jsonData); //結果を表示
    Console.ReadLine(); 

    //オブジェクト文字列を逆シリアル化
    str= "{\" ID \ ":2、\" Name \ ":\" Lu Zhishen \ "、\" Age \ " :230、\ "Sex \":\ "Male \"}"; 

    //
    学生2を逆シリアル化=JsonConvert.DeserializeObject<Student>(str); 

    Console.WriteLine(
           string.Format("学生情報ID:{0}、名前:{1}、年齢:{2}、性別:{3} "、
           two.ID、two.Name、two.Age、two.Sex)); //結果を表示
    Console.ReadLine();

出力結果:

5.エンティティオブジェクトのコレクションをシリアル化します

   //シリアル化されたオブジェクトコレクション
   List<Student>oneList = new List <Student>(){ 
        new Student {ID = 1、Name = "Wu Da"、Age = 260、Sex = "Male"}、
        new Student {ID = 2 、Name = "Wu Er"、Age = 250、Sex = "Male"}、
        new Student {ID = 3、Name = "Wu San"、Age = 240、Sex ="Female"} 
   };//オブジェクト

    文字列を定義jsonData = JsonConvert.SerializeObject(oneList); // Serialize 

    Console.WriteLine(jsonData); //結果を表示
    Console.ReadLine();

結果を示す:

6.エンティティオブジェクトのコレクションを逆シリアル化します(5のjsonData文字列がここで直接使用されます。怠惰であることを許してください)

   List <Student> twoList = JsonConvert.DeserializeObject <List <Student >>(jsonData); 

   foreach(Student stu in twoList)
   { 
        Console.WriteLine(
        string.Format( "Student ID:{0}、Name:{1}、Age :{2}、Gender:{3} "、
                                     stu.ID、stu.Name、stu.Age、stu.Sex));//結果を表示   
    } 
    Console.ReadLine();

結果を示す:

 

 

おすすめ

転載: blog.csdn.net/weixin_38801976/article/details/105528274