Json.net의 null 필드 무시
JSON으로 직렬화해야하는 데이터가 있습니다. JSON.NET을 사용하고 있습니다. 내 코드 구조는 다음과 유사합니다.
public struct structA
{
public string Field1;
public structB Field2;
public structB Field3;
}
public struct structB
{
public string Subfield1;
public string Subfield2;
}
문제는 내 JSON 출력에 Field1
OR Field2
OR 만 있어야한다는 것 Field3
입니다. 사용되는 필드에 따라 다릅니다 (즉, null이 아님). 기본적으로 내 JSON은 다음과 같습니다.
{
"Field1": null,
"Field2": {"Subfield1": "test1", "Subfield2": "test2"},
"Field3": {"Subfield1": null, "Subfield2": null},
}
사용할 수 있다는 것을 알고 NullValueHandling.Ignore
있지만 다음과 같은 JSON을 제공합니다.
{
"Field2": {"Subfield1": "test1", "Subfield2": "test2"},
"Field3": {}
}
그리고 내가 필요한 것은 다음과 같습니다.
{
"Field2": {"Subfield1": "test1", "Subfield2": "test2"},
}
이것을 달성하는 간단한 방법이 있습니까?
예를 사용해야 JsonSerializerSettings.NullValueHandling = NullValueHandling.Ignore
합니다.
그러나 구조체는 값 유형 이기 때문에 예상 결과를 얻으려면 Field2, Field3을 nullable 로 표시해야합니다 .
public struct structA
{
public string Field1;
public structB? Field2;
public structB? Field3;
}
또는 구조체 대신 클래스를 사용하십시오.
You can also apply the JsonProperty attribute to the relevant properties and set the null value handling that way. Refer to the Reference
property in the example below:
Note: The JsonSerializerSettings
will override the attributes.
public class Person
{
public int Id { get; set; }
[JsonProperty( NullValueHandling = NullValueHandling.Ignore )]
public int? Reference { get; set; }
public string Name { get; set; }
}
Hth.
참고URL : https://stackoverflow.com/questions/9819640/ignoring-null-fields-in-json-net
'IT박스' 카테고리의 다른 글
Scala의 유형 클래스는 무엇에 유용합니까? (0) | 2020.11.14 |
---|---|
마크 다운 파일 미리보기를위한 Vim 플러그인이 있습니까? (0) | 2020.11.14 |
XML 레이아웃에 조각을 추가하는 방법 (0) | 2020.11.14 |
“Non Zero Exit Status”R 3.0.1 'XML'및 'RCurl' (0) | 2020.11.14 |
fit_transform ()은 2 개의 위치 인수를 사용하지만 3 개는 LabelBinarizer로 제공되었습니다. (0) | 2020.11.14 |