logo MSJO.kr

System.Text.Json 기본 예제

2019-09-24
MsJ
   

Microsoft의 .NET Core 팀은 인기 있는 라이브러리인 Json.NET(Newtonsoft)을 제거하고 새로운 Json 라이브러리인 System.Text.Json(네임스페이스)을 추가하였다. 아래는 이를 활용한 간단한 기본 예제이다.

// 기본 사용법
class Student{}
JsonSerializer.Serialize(Student.GetList(), options);
JsonSerializer.Deserialize<List<Student>>(jsonString, options);

아래는 콘솔 모드에서 작성한 전체 소스이다.

기본예제 전체소스
using System;
using System.Collections.Generic;
using System.Text.Encodings.Web;
using System.Text.Json;

namespace ConsoleUI
{
    internal class Student
    {
        public string RegDate { get; } = DateTime.Now.ToString("yyyy-MM-dd");
        public string StudentName { get; set; }
        public string PhoneNumber { get; set; }

        public static List<Student> GetList()
        {
            return new List<Student>
            {
                new Student {StudentName = "가나닭", PhoneNumber = "1234567"},
                new Student {StudentName = "펲햏뷁", PhoneNumber = "7654321"},
                new Student {StudentName = "ABCDEF", PhoneNumber = "9876543"}
            };
        }
    }


    internal class Program
    {
        static void Main()
        {
            JsonSerializerOptions options = new JsonSerializerOptions
            {
                Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
                PropertyNameCaseInsensitive = true
            };

            var jsonString = JsonSerializer.Serialize(Student.GetList(), options);
            Console.WriteLine(jsonString);

            Console.WriteLine("--------------------------");

            var students = JsonSerializer.Deserialize<List<Student>>(jsonString, options);

            foreach (var item in students)
            {
                Console.WriteLine($"{item.StudentName} : {item.PhoneNumber} : {item.RegDate}");
            }
        }
    }
}
Reference

Prεv   Nεxt
Content
Search     RSS Feed     BY-NC-ND