English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

fastjson에서 json 생성 시 Null 속성이 표시되지 않는 해결 방법

예를 들어

Map < String , Object > jsonMap = new HashMap< String , Object>(); 
jsonMap.put("a",1); 
jsonMap.put("b",""); 
jsonMap.put("c",null); 
jsonMap.put("d","wuzhuti.cn"); 
String str = JSONObject.toJSONString(jsonMap); 
System.out.println(str); 
//출력 결과:{"a":1,"b":"",d:"wuzhuti.cn" 

출력 결과를 보면 null에 해당하는 키가 필터링되었습니다; 이는 우리가 원하는 결과가 아니며, 이 경우 fastjson의 SerializerFeature 시리얼라이즈 속성을 사용해야 합니다

이 메서드입니다:JSONObject.toJSONString(Object object, SerializerFeature... features)

Fastjson의 SerializerFeature 시리얼라이즈 속성

QuoteFieldNames———-키를 출력할 때 양쪽에 인용부호를 사용할지 여부, 기본值为 true

WriteMapNullValue——–null 값이 있는 필드를 출력할지 여부, 기본值为 false

WriteNullNumberAsZero—-숫자 필드가 null이면 0으로 출력되며, null이 아닙니다

WriteNullListAsEmpty—–List 필드가 null이면 []로 출력되며, null이 아닙니다

WriteNullStringAsEmpty—문자형 필드가 null이면 ""로 출력되며, null이 아닙니다

WriteNullBooleanAsFalse–Boolean 필드가 null이면 false로 출력되며, null이 아닙니다

코드

Map < String , Object > jsonMap = new HashMap< String , Object>(); 
jsonMap.put("a",1); 
jsonMap.put("b",""); 
jsonMap.put("c",null); 
jsonMap.put("d","wuzhuti.cn"); 
String str = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue); 
System.out.println(str); 
//출력 결과:{"a":1,"b":"","c":null,"d":"wuzhuti.cn" 

이 글에서 fastjson이 JSON을 생성할 때 Null 속성이 표시되지 않는 해결 방법을 소개해 드렸습니다. 많은 참고가 되길 바랍니다. 또한, 노래 교본에 많은 지지를 부탁드립니다.

추천해드립니다