본문 바로가기
프로그래밍

c# JsonCovert.SerializeObject json 변환시 null 값 제거 하기

by 도장깨기 2021. 4. 1.
728x90
반응형

상황에 따라 생성해 놓은 모델에 null 값이 들어간 부분을 제외하고 변환해야 할때가 있다. 

ex) API POST 호출시 

 

 

 

 

예를 들어 아래처럼

 

testModel.cs

	public class TEST
	{
		public int count { get; set; }
		public int start { get; set; }
		public string expand { get; set; }
		public string select { get; set; }
	}

 

				var test = new TEST()
				{
					count = 5,
					start = 0,
					select = "(**)"

				};
                
                string data = JsonConvert.SerializeObject(test);

jsonConvert로 변환할 경우 모델에 expand 값을 넣지 않았기때문에

 

{
  "count": 5,
  "start": 0,
  "expand": null,
  "select": "(**)"
}

JsonConvert.SerializeObject 실행 결과 

위와 같은 형태로 json이 만들어질 것 이다. 

 

하지만 expand를 표시하지 않아야 되는 형태가 되려면

string data = JsonConvert.SerializeObject(test); 이부분을

 

				string data = JsonConvert.SerializeObject(test, Formatting.Indented, new JsonSerializerSettings
				{
					NullValueHandling = NullValueHandling.Ignore
				});

위와 같은 형태로  NullValueHandling.Ignore을 이용해 변환한다면

 

{
  "count": 5,
  "start": 0,
  "select": "(**)"
}

다음과 같이 변환할 수 있다.

 

 

잘못된 부분이나 질문 사항 댓글로 남겨주시면

답변드리겠습니다~~ 감사합니다!

728x90
반응형

댓글