ASP.Net Core의 JSON 직렬화 / 역 직렬화


131

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

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

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

답변:


235

당신은 사용할 수 있습니다 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 지원 을 읽으십시오 .


이제 AspNetCore.Mcv는 Newtonsoft.JSON에 종속되지 않습니다. 직렬화에 사용되는 Microsoft.AspNet.Mvc.Formatters.Json 어셈블리
로마 Pokrovskij

9
@RomanPokrovskij, 잘못은 : Microsoft.AspNetCore.Mvc.Formatters.JsonA와 의존성이 Microsoft.AspNetCore.JsonPatch에 대한 종속성이있는 Newtonsoft.Json9.0.1 nuget.org/packages/Microsoft.AspNetCore.Mvc.Formatters.Json , nuget.org/packages/Microsoft.AspNetCore.JsonPatch을
화성에서 아구아

JsonConvert.DeserializeObject <YourClass> (json)를 사용하여 특정 클래스로 역 직렬화 할 수도 있습니다.
누노 리베이로

14

.net 코어

using System.Text.Json;

직렬화하려면

var jsonStr = JsonSerializer.Serialize(MyObject)

역 직렬화

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

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


json을 동적 유형으로 직렬화 해제하는 방법을 알고 있습니까?
zolty13
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.