JsonDocumentクラス

参考サイト

docs.microsoft.com

sample code

using System;
using static System.Console;
using System.IO;
using System.Text;
using System.Text.Json;

namespace JsonDocTest
{
    class Program
    {
        static void Main(string[] args)
        {
            //========================================
            // JSONパース
            //========================================
            var json = JsonDocument.Parse(File.ReadAllText("files/test.json", Encoding.UTF8));

            //========================================
            // 取得について
            //========================================
            // > Tanaka
            WriteLine(json.RootElement.GetProperty("name").ToString());
            // > "Tanaka"
            WriteLine(json.RootElement.GetProperty("name").GetRawText());
            // > 26
            WriteLine(json.RootElement.GetProperty("age").ToString());
            // > 日本
            WriteLine(json.RootElement.GetProperty("address").GetProperty("countory").ToString());
            // > 東京
            WriteLine(json.RootElement.GetProperty("address").GetProperty("city").ToString());

            //========================================
            // 型について
            //========================================
            var name =json.RootElement.GetProperty("name");
            // > String
            WriteLine(name.ValueKind);
            // > Object
            var address = json.RootElement.GetProperty("address");
            WriteLine(address.ValueKind);

            //========================================
            // 配列について
            //========================================
            var ids = json.RootElement.GetProperty("ids");
            // Array
            WriteLine(ids.ValueKind);
            // > 100
            // > 200
            // > 300
            foreach (var item in ids.EnumerateArray())
            {
                WriteLine(item);
            }
           
            // 未設定について
            var d = json.RootElement.GetProperty("dust");
            // > Null
            WriteLine(d.ValueKind);
            // 未出力
            WriteLine(d);
        }
    }
}