[C#] ASP.Net Core의 JSON 직렬화 / 역 직렬화

이 없기 때문에 JavaScriptSerializer이것을 처리하기 위해 어떤 기본 구현을 사용할 수 있습니까?

나는 JsonResult이것을 사용하여 데이터를 JSON으로 포맷 할 수 있지만 직렬화를 어떻게 해제합니까?

아니면 일부 종속성이 누락 project.json되었습니까?



답변

당신은 사용할 수 있습니다 Newtonsoft.Json그것은의 종속성의, Microsoft.AspNet.Mvc.ModelBinding의 종속성이다 Microsoft.AspNet.Mvc. 따라서 project.json에 종속성을 추가 할 필요가 없습니다.

#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);

WebAPI 컨트롤러를 사용하면 JSON을 다룰 필요가 없습니다.

ASP.Net Core 3.0 업데이트

Json.NET 은 ASP.NET Core 3.0 공유 프레임 워크에서 제거되었습니다.

고성능 Utf8JsonReader및 에서 새로운 JSON 시리얼 라이저 레이어를 사용할 수 있습니다 Utf8JsonWriter. JSON에서 객체를 직렬화 해제하고 객체를 JSON으로 직렬화합니다. 메모리 할당은 최소로 유지되며 Stream을 사용하여 JSON을 비동기 적으로 읽고 쓸 수있는 기능이 지원됩니다.

시작하려면 네임 스페이스 에서 JsonSerializer클래스를 사용하십시오 System.Text.Json.Serialization. 정보 및 샘플 은 설명서 를 참조하십시오 .

ASP.NET Core 3.0 프로젝트에서 Json.NET을 사용하려면

    services.AddMvc()
        .AddNewtonsoftJson();

자세한 내용 은 ASP.NET Core 2.2에서 3.0 Preview 2마이그레이션에서 Json.NET 지원 을 읽으십시오 .


답변

.net 코어

using System.Text.Json;

직렬화하려면

var jsonStr = JsonSerializer.Serialize(MyObject)

역 직렬화

var weatherForecast = JsonSerializer.Deserialize<MyObject>(jsonStr);

속성 및 null 제외에 대한 자세한 내용은 Microsoft 측을 확인하십시오.


답변