NetcoreでのJSONとXML操作


JSON操作


1.概要


要素タイプ
識別
例を挙げる
数値
直接与える
"num":666
文字列
「」ID
"name":"xiaoming"
オブジェクト
{}ID
"p":{"fruit":"apple"}
はいれつ
[]ID
"colors":["red","blue","green"]
{
  //   
  "type": "truck",
  //int 
  "wheeks": 6,
  //  
  "owner": {
    "name": "John",
    "age": "42"
  },
  //  
  "colors": [ "red", "blue", "green" ]
}

2.読み取り


jsonファイル
[
  {
    "Name": "  ",
    "Date": "20200909",
    "Have": {
      "Toys": [ "car", "ipad", "phone" ],
      "Money": 120000
    }
  },
  {
    "Name": "  ",
    "Date": "20200809",
    "Have": {
      "Toys": [ "rocket", "xbox", "sp" ],
      "Money": 180000
    }
  }
]

コンテンツの読み込み


内容
操作
JSOONにロード
JsonDocument.Parse(情報Stream)
ルート要素の取得
JSONファイルオブジェクトRootElement
配列要素の取得
JSONファイルオブジェクト[配列下付きint]
属性の取得
JSONファイルオブジェクトGetProperty(プロパティstring)
using(var fs=new FileStream("test.json",FileMode.Open))
{
    using (var cmt = JsonDocument.Parse(fs))
    {
        var t = cmt.RootElement[0].GetProperty("Have").GetProperty("Toys")[2];
        WriteLine(t);
    }
}

遍歴する


JSONファイルオブジェクトEnumerateArray()反復可能なセットの取得
using (var fs = new FileStream("data.json", FileMode.Open))
{
    using (JsonDocument js = JsonDocument.Parse(fs))
    {
        foreach (var item in js.RootElement.EnumerateArray())
        {

            foreach(var jtem in item.GetProperty("Have").GetProperty("Toys").EnumerateArray())
            {
                WriteLine(jtem);
            }
        }
    }
}

3.書き込み


内容
操作
配列の開始と終了を書き込む
WriteStartArray()とWriteEndArray()
書き込みオブジェクトの開始と終了
WriteStartObject()とWriteEndObject()
書き込み文字列
WriteString(名前String、コンテンツstring)
書き込み数
WriteNumber(名前String、コンテンツstring)
using(var stream=new FileStream("data.json",FileMode.Create))
{
    using (var jw = new Utf8JsonWriter(stream))
    {
        //        
        jw.WriteStartArray();
        //        
        jw.WriteStartObject();
        //     
        jw.WriteString("date", DateTime.UtcNow);
        //    
        jw.WriteNumber("temp", 42);
        //        
        jw.WriteEndObject();
        //        
        jw.WriteStartObject();
        //     
        jw.WriteString("date", DateTime.UtcNow);
        //    
        jw.WriteNumber("temp", 43);
        //        
        jw.WriteEndObject();
        //        
        jw.WriteEndArray();
    }
}

結果の書き込み
[
  {
    "date": "2020-03-18T14:11:04.9090202Z",
    "temp": 42
  },
  {
    "date": "2020-03-18T14:11:04.9106672Z",
    "temp": 43
  }
]

4.シーケンス化と逆シーケンス化


jsonファイルに対応するクラスを定義し、シーケンス化と逆シーケンス化の間にタイプを入力します.

4.1逆シーケンス化


オブジェクトを取得
var obj=JsonSerializer.Deserialize(str);
var obj=JsonSerializer.Deserialize>(str);

4.2シーケンス化


JSON文字列を取得
var str=JsonSerializer.Serialize(ps);
var dt=JsonSerializer.Deserialize>(str);

XMLアクション


1.概要


を選択します.
識別
例を挙げる
ドキュメント宣言
要素/ラベル >


ツールバーの
コメント







アルファベットで :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z その