System.Text.Json을 사용하여 DateTime, Guid 또는 Enum을 역 직렬화 할 수 없음

매트 샌더스

나는 버그를 제출했지만 이것은 내가 뭔가를 놓치고 있어야 할 기본적인 기본 시나리오처럼 보인다 : 버그 : https://github.com/dotnet/runtime/issues/48202

System.Text.Json을 사용하여 DateTime, Guid 또는 Enum을 역 직렬화 할 수 없습니다.

다음은 내가 예상하는 방식을 재현하기위한 매우 최소한의 XUnit 테스트이지만 실패합니다.

using System;
using System.Text.Json;
using Xunit;

namespace Example.Tests
{
    public class UnitTest1
    {
        [Fact]
        public void GuidsAndDateTimesNotSerialized()
        {
            var post = new Post {
                AuthorId = Guid.NewGuid(),
                Created = DateTime.UtcNow,
                Title = "test title",
                Path = "test-title",
                PostStatus = PostStatus.Published,
                Description = "this is a test",

            };
            var json = JsonSerializer.Serialize(post);
            var result = JsonSerializer.Deserialize<Post>(json);

            Assert.Equal(post.Created, result.Created);
            Assert.Equal(post.AuthorId, result.AuthorId);
            Assert.Equal(post.PostStatus, result.PostStatus);
        }
    }

    public class Post
    {
        public Guid AuthorId { get; internal set; }
        public string Title { get; set; }
        public string Path { get; set; }
        public string Description { get; set; }
        public PostStatus PostStatus { get; internal set; }
        public DateTime Created { get; internal set; }
    }

    public enum PostStatus
    {
        Draft,
        Published
    }
}

System.Text.Json을 사용하여 내가 누락 된 것이 있습니까?

T McKeown

내 생각 엔 속성 세트 internal는 JSON 라이브러리 / 어셈블리에 액세스 할 수 없습니다. setter로 변경 public( internal액세스 수정 자 제거 )하고 다시 시도하십시오.

JSON DTO는 단순 클래스 여야하며 항상 기본 생성자가 있어야합니다.

public class Post
{
    public Guid AuthorId { get; set; }
    public string Title { get; set; }
    public string Path { get; set; }
    public string Description { get; set; }
    public PostStatus PostStatus { get; set; }
    public DateTime Created { get; set; }
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Retrofit을 사용하여 중첩 된 JSON을 역 직렬화 할 수 없음 (Android)

분류에서Dev

protobuf-net을 사용하여 C #에서 역 직렬화 할 수 없음

분류에서Dev

System.Text.Json을 사용하여 동적 속성을 포함하는 클래스로 JSON 역 직렬화

분류에서Dev

SimpleXML을 사용하여 SOAP 응답을 역 직렬화 할 수 없습니까?

분류에서Dev

현재 JSON 개체를 역 직렬화 할 수 없습니다. 그룹 열을 사용하여 현재 JSON 개체를 역 직렬화 할 수 없습니다.

분류에서Dev

JSON에서 사전을 역 직렬화 할 수 없습니다.

분류에서Dev

UWP 앱에서 JSON을 역 직렬화 할 수 없음

분류에서Dev

System.Text.Json API를 사용하여 스트림을 개체로 역 직렬화하는 방법

분류에서Dev

직렬화 및 역 직렬화는 사전을 백업 필드로 사용할 수 없습니다.

분류에서Dev

System.Text.JSON을 사용하여 지원되지 않는 인터페이스 형식의 역 직렬화

분류에서Dev

GSON 또는 Jackson을 사용하여 일반 인수를 사용하여 JSON을 클래스로 역 직렬화

분류에서Dev

System.Text.JSON은 Newtonsoft가 수행하는 작업을 역 직렬화하지 않습니다.

분류에서Dev

VB.net을 사용하여 Json이 Youtube 데이터를 역 직렬화 할 수 없습니다.

분류에서Dev

jackson을 사용하여 동일한 ID를 가진 2 개의 개체를 포함하는 Json을 역 직렬화 할 수 없습니다.

분류에서Dev

SwiftyJSON을 사용하여 역 직렬화 할 변수로 JSON 응답 저장

분류에서Dev

GSON를 사용하여 알 수없는 원시적 인 JSON 속성 유형을 역 직렬화하는 방법

분류에서Dev

자바 객체에 datetime을 사용하여 JSON 역 직렬화

분류에서Dev

C # MVC는 튜플을 역 직렬화 할 수 없습니다.

분류에서Dev

직렬화 후 저지로 json을 역 직렬화 할 수 없습니까?

분류에서Dev

System.Text.Json을 사용하여 배열 json 개체의 중첩 된 배열을 역 직렬화

분류에서Dev

예측할 수없는 JSON 속성을 문자열로 역 직렬화

분류에서Dev

JSON 목록을 C #의 개체 목록으로 역 직렬화 할 수 없음

분류에서Dev

CouchDB에서 Json을 역 직렬화 할 수 없습니다.

분류에서Dev

JSON을 역 직렬화 할 수 없습니다.

분류에서Dev

JSON 응답을 역 직렬화 할 수 없습니다.

분류에서Dev

json을 제대로 역 직렬화 할 수 없습니다.

분류에서Dev

json 배열을 역 직렬화 할 수 없습니다.

분류에서Dev

JSon을 C #으로 역 직렬화 할 수 없습니다.

분류에서Dev

System.Text.Json을 사용하여 목록을 비동기 적으로 역 직렬화

Related 관련 기사

  1. 1

    Retrofit을 사용하여 중첩 된 JSON을 역 직렬화 할 수 없음 (Android)

  2. 2

    protobuf-net을 사용하여 C #에서 역 직렬화 할 수 없음

  3. 3

    System.Text.Json을 사용하여 동적 속성을 포함하는 클래스로 JSON 역 직렬화

  4. 4

    SimpleXML을 사용하여 SOAP 응답을 역 직렬화 할 수 없습니까?

  5. 5

    현재 JSON 개체를 역 직렬화 할 수 없습니다. 그룹 열을 사용하여 현재 JSON 개체를 역 직렬화 할 수 없습니다.

  6. 6

    JSON에서 사전을 역 직렬화 할 수 없습니다.

  7. 7

    UWP 앱에서 JSON을 역 직렬화 할 수 없음

  8. 8

    System.Text.Json API를 사용하여 스트림을 개체로 역 직렬화하는 방법

  9. 9

    직렬화 및 역 직렬화는 사전을 백업 필드로 사용할 수 없습니다.

  10. 10

    System.Text.JSON을 사용하여 지원되지 않는 인터페이스 형식의 역 직렬화

  11. 11

    GSON 또는 Jackson을 사용하여 일반 인수를 사용하여 JSON을 클래스로 역 직렬화

  12. 12

    System.Text.JSON은 Newtonsoft가 수행하는 작업을 역 직렬화하지 않습니다.

  13. 13

    VB.net을 사용하여 Json이 Youtube 데이터를 역 직렬화 할 수 없습니다.

  14. 14

    jackson을 사용하여 동일한 ID를 가진 2 개의 개체를 포함하는 Json을 역 직렬화 할 수 없습니다.

  15. 15

    SwiftyJSON을 사용하여 역 직렬화 할 변수로 JSON 응답 저장

  16. 16

    GSON를 사용하여 알 수없는 원시적 인 JSON 속성 유형을 역 직렬화하는 방법

  17. 17

    자바 객체에 datetime을 사용하여 JSON 역 직렬화

  18. 18

    C # MVC는 튜플을 역 직렬화 할 수 없습니다.

  19. 19

    직렬화 후 저지로 json을 역 직렬화 할 수 없습니까?

  20. 20

    System.Text.Json을 사용하여 배열 json 개체의 중첩 된 배열을 역 직렬화

  21. 21

    예측할 수없는 JSON 속성을 문자열로 역 직렬화

  22. 22

    JSON 목록을 C #의 개체 목록으로 역 직렬화 할 수 없음

  23. 23

    CouchDB에서 Json을 역 직렬화 할 수 없습니다.

  24. 24

    JSON을 역 직렬화 할 수 없습니다.

  25. 25

    JSON 응답을 역 직렬화 할 수 없습니다.

  26. 26

    json을 제대로 역 직렬화 할 수 없습니다.

  27. 27

    json 배열을 역 직렬화 할 수 없습니다.

  28. 28

    JSon을 C #으로 역 직렬화 할 수 없습니다.

  29. 29

    System.Text.Json을 사용하여 목록을 비동기 적으로 역 직렬화

뜨겁다태그

보관