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

حل مشكلة عدم عرض الخاصية Null عند إنشاء json باستخدام fastjson

لنأخذ مثالاً

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 تم إزالته؛ هذا ليس هو الناتج الذي نريده، في هذه الحالة نحتاج إلى استخدام خاصية التسلسل SerializerFeature لـ fastjson

وهذا هو الطريقة:JSONObject.toJSONString(Object object, SerializerFeature... features)

خصائص التسلسل لـ Fastjson

QuoteFieldNames———-هل يتم استخدام العلامات المزدوجة عند عرض keys أم لا، القيمة الافتراضية هي true

WriteMapNullValue——–هل يتم عرض الحقول التي يساوي قيمتها null أم لا، القيمة الافتراضية هي false

WriteNullNumberAsZero—إذا كان الحقل من نوع عدد يساوي null، يتم عرضه كـ 0 بدلاً من null

WriteNullListAsEmpty—إذا كان الحقل من نوع قائمة يساوي 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"} 

حلقة هذا الفاستجسيم عند إنشاء JSON عند عدم عرض خاصية Null هي كل محتوى يشاركه المحرر معكم، آمل أن يكون هذا مرجعًا جيدًا، وأتمنى أن تدعموا دليل الصياح.

أنت قد تحب