Newtonsoft JsonConvert DeserializeObject가 엔티티 오류의 기본값을 무시할 수 없습니까?

야통

다음은 샘플 코드입니다.

bool 목록을 포함하는 TargetEntity가 있으며 기본적으로 true의 7 개 요소 목록으로 설정되어 있습니다.

내가하려는 것은 7 개의 거짓목록을 포함하는 JSON에서 역 직렬화하는 것입니다 . 그러나 역 직렬화 할 때 기본 값을 포함하고 다음과 같이 JSON에서 역 직렬화 값을 첨부 한 14 개의 값 목록을 구성한 것 같습니다. { true, true, true, true, true, true, true, false, false, false, false, false, false, false }What is wrong here?

using Newtonsoft.Json;
using System.Collections.Generic;


public class Program
{
    public static void Main()
    {
        var _entityList = JsonConvert.DeserializeObject<List<TargetEntity>>(
            "[{\"BoolsList\": [false,false,false,false,false,false,false]}]",
            new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore });

        Console.WriteLine("List size: " + _entityList[0].BoolsList.Count);

        for(int i = 0; i < _entityList[0].BoolsList.Count; i++)
        {
            Console.WriteLine($"List element {i}: " + _entityList[0].BoolsList[i]);
        }
        
    }

    public class TargetEntity 
    {
        public List<bool> BoolsList { get; set; } = new List<bool> { true, true, true, true, true, true, true };
    }

}

이 코드와 같은 C # 바이올린이 있습니다 : https://dotnetfiddle.net/VMIXeg

N Pinheiro

serializer 설정 및 새 개체가 구성되고 채워지는 방식과 관련된 매우 흥미로운 동작입니다. :)

원하는 것이 기본 목록을 바꾸고을 계속 사용하는 것이라면 Newtonsoft.Json설정을 바꿀 수 있습니다.

new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore }

으로

new JsonSerializerSettings { ObjectCreationHandling = ObjectCreationHandling.Replace }

.NET 버전에 따라 다음을 사용할 수도 있습니다 System.Text.Json.

using System;
using System.Collections.Generic;
using System.Text.Json;

public class Program
{
    public static void Main()
    {
        var _entityList = JsonSerializer.Deserialize<List<TargetEntity>>("[{\"BoolsList\": [false,false,false,false,false,false,false]}]");
        ...
    }
...
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

오류 : "double *"유형의 값을 "double"유형의 엔티티에 지정할 수 없습니다.

분류에서Dev

값을 업데이트 할 수 없음 : 엔티티의 상태를 '수정 됨'으로 변경하는 동안 '기본 키'에 임시 값이 있습니다.

분류에서Dev

Linq의 List <string>을 엔티티로 엔티티로 어떻게 사용할 수 있습니까?

분류에서Dev

'Newtonsoft.Json.JsonConvert.DeserializeObject (string)'에 잘못된 인수가 있습니다.

분류에서Dev

엔티티 데이터 모델을 추가 할 수 없습니다 (EF6).

분류에서Dev

nhibernate 엔티티 예외의 유형을 결정할 수 없습니다.

분류에서Dev

많은 수의 분할 된 카운터, 즉 많은 수의 엔티티 종류를 가질 수 있습니까?

분류에서Dev

"빌드시 엔티티 유형을 알 수없는 경우 DBset를 사용할 수 있습니다"라는 용어는 무엇을 의미합니까?

분류에서Dev

엔터티가 컨텍스트에 없기 때문에 'MyTable'유형의 엔터티에 대해 멤버 'CurrentValues'를 호출 할 수 없습니다.

분류에서Dev

기본 컨트롤러 (Odata WebAPI)에서 int 키가있는 엔티티에 액세스 할 수 없습니다.

분류에서Dev

SoapClient가 외부 엔티티를로드 할 수 없습니다.

분류에서Dev

DownloadDataTaskAsync 및 JsonConvert.DeserializeObject. 다음 오류가 발생합니다.-변환 할 수 없습니다. 'byte []'에서 'string'으로 변환 할 수 없습니다.

분류에서Dev

JsonConvert.DeserializeObject가 미국 이외의 날짜 형식을 사용할 때 문자열을 DateTime으로 변환 할 수 없습니다.

분류에서Dev

char * 유형의 값은 "char"유형의 엔티티를 초기화하는 데 사용할 수 없습니다.

분류에서Dev

반환 매개 변수에 추가 할 엔티티 값을 검색합니다.

분류에서Dev

ViewModel에 목록으로 엔티티를 추가 할 수 없습니까?

분류에서Dev

시간이 dynamics crm의 엔티티 속성과 같아 질 때 로직을 수행 할 수 있습니까?

분류에서Dev

NewtonSoft JSONConvert를 사용하여 JSON을 구문 분석 할 수 없습니다.

분류에서Dev

const char * 유형의 값을 char * 유형의 엔티티에 지정할 수 없습니다.

분류에서Dev

처리 할 수없는 엔티티 오류 (ajax) (laravel 5.2)

분류에서Dev

Simplexml_load_string 엔티티 구문 분석기 오류 시작 태그가 필요합니다. '& lt;' 찾을 수 없음

분류에서Dev

클래스의 엔티티 프레임 워크 엔티티에 액세스 할 수 없습니다.

분류에서Dev

JPA / HIBERNATE : 쿼리는 비 엔티티 개체 또는 내부 비 엔티티 개체가있는 개체 목록을 어떻게 반환 할 수 있습니까?

분류에서Dev

Rails 5 accepts_nested_attributes_for JSON POST로 처리 할 수없는 엔티티 가져 오기

분류에서Dev

<엔티티> 검색을 사용한 후 단일 엔터티의 속성에 액세스 할 수없는 이유는 무엇입니까?

분류에서Dev

Hibernate 4 엔티티가 프록시인지 실제 엔티티인지 어떻게 알 수 있습니까?

분류에서Dev

엔티티에 부울 값을 설정할 때 오류가 발생했습니다.

분류에서Dev

엔터티 프레임 워크 오류 ... 속성을 'System.Int16'값으로 설정할 수 없습니다.

분류에서Dev

"상태 오류 (활성) E0513"const wchar_t * "유형의 값을"wchar_t * "유형의 엔티티에 할당 할 수 없음"수정 방법

Related 관련 기사

  1. 1

    오류 : "double *"유형의 값을 "double"유형의 엔티티에 지정할 수 없습니다.

  2. 2

    값을 업데이트 할 수 없음 : 엔티티의 상태를 '수정 됨'으로 변경하는 동안 '기본 키'에 임시 값이 있습니다.

  3. 3

    Linq의 List <string>을 엔티티로 엔티티로 어떻게 사용할 수 있습니까?

  4. 4

    'Newtonsoft.Json.JsonConvert.DeserializeObject (string)'에 잘못된 인수가 있습니다.

  5. 5

    엔티티 데이터 모델을 추가 할 수 없습니다 (EF6).

  6. 6

    nhibernate 엔티티 예외의 유형을 결정할 수 없습니다.

  7. 7

    많은 수의 분할 된 카운터, 즉 많은 수의 엔티티 종류를 가질 수 있습니까?

  8. 8

    "빌드시 엔티티 유형을 알 수없는 경우 DBset를 사용할 수 있습니다"라는 용어는 무엇을 의미합니까?

  9. 9

    엔터티가 컨텍스트에 없기 때문에 'MyTable'유형의 엔터티에 대해 멤버 'CurrentValues'를 호출 할 수 없습니다.

  10. 10

    기본 컨트롤러 (Odata WebAPI)에서 int 키가있는 엔티티에 액세스 할 수 없습니다.

  11. 11

    SoapClient가 외부 엔티티를로드 할 수 없습니다.

  12. 12

    DownloadDataTaskAsync 및 JsonConvert.DeserializeObject. 다음 오류가 발생합니다.-변환 할 수 없습니다. 'byte []'에서 'string'으로 변환 할 수 없습니다.

  13. 13

    JsonConvert.DeserializeObject가 미국 이외의 날짜 형식을 사용할 때 문자열을 DateTime으로 변환 할 수 없습니다.

  14. 14

    char * 유형의 값은 "char"유형의 엔티티를 초기화하는 데 사용할 수 없습니다.

  15. 15

    반환 매개 변수에 추가 할 엔티티 값을 검색합니다.

  16. 16

    ViewModel에 목록으로 엔티티를 추가 할 수 없습니까?

  17. 17

    시간이 dynamics crm의 엔티티 속성과 같아 질 때 로직을 수행 할 수 있습니까?

  18. 18

    NewtonSoft JSONConvert를 사용하여 JSON을 구문 분석 할 수 없습니다.

  19. 19

    const char * 유형의 값을 char * 유형의 엔티티에 지정할 수 없습니다.

  20. 20

    처리 할 수없는 엔티티 오류 (ajax) (laravel 5.2)

  21. 21

    Simplexml_load_string 엔티티 구문 분석기 오류 시작 태그가 필요합니다. '& lt;' 찾을 수 없음

  22. 22

    클래스의 엔티티 프레임 워크 엔티티에 액세스 할 수 없습니다.

  23. 23

    JPA / HIBERNATE : 쿼리는 비 엔티티 개체 또는 내부 비 엔티티 개체가있는 개체 목록을 어떻게 반환 할 수 있습니까?

  24. 24

    Rails 5 accepts_nested_attributes_for JSON POST로 처리 할 수없는 엔티티 가져 오기

  25. 25

    <엔티티> 검색을 사용한 후 단일 엔터티의 속성에 액세스 할 수없는 이유는 무엇입니까?

  26. 26

    Hibernate 4 엔티티가 프록시인지 실제 엔티티인지 어떻게 알 수 있습니까?

  27. 27

    엔티티에 부울 값을 설정할 때 오류가 발생했습니다.

  28. 28

    엔터티 프레임 워크 오류 ... 속성을 'System.Int16'값으로 설정할 수 없습니다.

  29. 29

    "상태 오류 (활성) E0513"const wchar_t * "유형의 값을"wchar_t * "유형의 엔티티에 할당 할 수 없음"수정 방법

뜨겁다태그

보관