System.Text.Json
.NET core 3.0에는 System.Text.Json
기본적 으로 내장되어있어 JSON 을 직렬화 해제 / 직렬화 할 수 있습니다. 라이브러리가 제공되므로 타사 라이브러리를 사용 .
클래스를 JSON 문자열로 직렬화하려면 다음을 수행하십시오.
var json = JsonSerializer.Serialize(order);
JSON을 강력한 형식의 클래스로 역 직렬화하려면 다음을 수행하십시오.
var order = JsonSerializer.Deserialize<Order>(json);
따라서 아래와 같은 수업이 있다면 :
public class Order
{
public int Id { get; set; }
public string OrderNumber { get; set; }
public decimal Balance { get; set; }
public DateTime Opened { get; set; }
}
var json = JsonSerializer.Serialize(order);
// creates JSON ==>
{
"id": 123456,
"orderNumber": "ABC-123-456",
"balance": 9876.54,
"opened": "2019-10-21T23:47:16.85",
};
var order = JsonSerializer.Deserialize<Order>(json);
// ==> creates the above class
주의해야 할 것은 자신의 코드를 사용할 때 JSON 속성을 자동으로 처리 System.Text.Json
하지 않는다는 것입니다camelCase
(단, MVC / WebAPI 요청 및 모델 바인더 사용시).
이 문제를 해결하려면 JsonSerializerOptions
매개 변수 로 전달해야합니다 .
JsonSerializerOptions options = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase, // set camelCase
WriteIndented = true // write pretty json
};
// pass options to serializer
var json = JsonSerializer.Serialize(order, options);
// pass options to deserializer
var order = JsonSerializer.Deserialize<Order>(json, options);
System.Text.Json 은 Nu-get 패키지 System.Text.Json 으로 .Net Framework 및 .Net Standard에서도 사용할 수 있습니다.