English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
لنأخذ مثالاً
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 هي كل محتوى يشاركه المحرر معكم، آمل أن يكون هذا مرجعًا جيدًا، وأتمنى أن تدعموا دليل الصياح.