Newtonsoft Json.NET을 사용하여 ASP.NET Core 3.1 애플리케이션에서 역 직렬화를 수행하고 싶습니다. 내 시작 ConfigureServices 코드에 다음을 입력했습니다.
services.AddMvc().AddNewtonsoftJson();
사용자 지정 직렬화 특성이있는 MVC 모델이 있습니다.
public class MyModel {
[Newtonsoft.Json.JsonConverter(typeof(MyCustomJsonConverter))]
public DateTime MyProperty {get; set;}
}
내 관점에서 JSON으로 직렬화합니다.
<script>
someJsFunction(@Json.Serialize(Model));
</script>
그러나 MyCustomJsonConverter를 사용하지 않습니다. MyCustomJsonConverter에서는 중단 점이 적중되지 않습니다.
대답은 전역 Json 설정에 추가하는 것입니다.
services.AddMvc().AddNewtonsoftJson(options =>
{
options.SerializerSettings.Converters = new List<JsonConverter>()
{
new MyCustomJsonConverter()
};
});
그러나 MyCustomJsonConverter는 속성이 적용된 속성이 아닌 모든 DateTime 속성에 적용됩니다. JSON.Serialize 오버로드를 사용할 수도 있습니다.
<script>
someJsFunction(@Json.Serialize(Model, new JsonSerializerSettings()
{
Converters = new List<JsonConverter> { new MyCustomJsonConverter()},
}
));
</script>
그러나 나는 그것을 부를 때마다 이것을하고 싶지 않습니다. 3.0에서 Newtonsoft Json.NET에서 전환하기 전에 이러한 JsonConverter 속성이 자체적으로 잘 작동한다고 확신합니다. 내가 뭘 잘못하고 있는지 아이디어가 있습니까?
보기에서 Newtonsoft에 using을 추가하고 Serializer를 사용하십시오.
@using Newtonsoft.Json;
...
..(@JsonConvert.SerializeObject(Model))
작동하지 않는 이유는 다른 라이브러리에서 하나에서 직렬 변환기를 사용하고 있다는 점이다 Microsoft.AspNetCore.Mvc.Rendering
과에서 다른Newtonsoft.Json
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다