ASP.NET Core 3.1에서 Newtonsoft.JSON을 사용하여 Json.Serialize ()와 함께 작동하지 않는 사용자 지정 JsonConverter 특성

졸라 25

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 속성이 자체적으로 잘 작동한다고 확신합니다. 내가 뭘 잘못하고 있는지 아이디어가 있습니까?

Kos

보기에서 Newtonsoft에 using을 추가하고 Serializer를 사용하십시오.

@using Newtonsoft.Json;

...

..(@JsonConvert.SerializeObject(Model))

작동하지 않는 이유는 다른 라이브러리에서 하나에서 직렬 변환기를 사용하고 있다는 점이다 Microsoft.AspNetCore.Mvc.Rendering과에서 다른Newtonsoft.Json

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관