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}");
}
}
}
}