Object javaInitObj = uploadData;
// 【Java对象、Json对象、Json字符串】 任意转换
// Java对象 >> Json对象,使用 fastjson 库的 JSON.toJSON
JSONObject jsonObject = (JSONObject) JSON.toJSON(javaInitObj);
// Java对象 >> Json字符串,使用 fastjson 库的 JSON.toJSONString
String jsonString = JSON.toJSONString(javaInitObj);
// Json字符串 >> Json对象,使用 fastjson 库的 JSON.parseObject
JSONObject jsonObject2 = JSON.parseObject(jsonString);
// Json字符串 >> Java对象,使用 fastjson 库的 JSON.parse
Object javaObject = JSON.parse(jsonString);
// Json对象 >> Java对象,使用 fastjson 库的 JSON.toJavaObject
Object javaObject2 = JSON.toJavaObject(jsonObject2,Object.class);
// Json对象 >> Json字符串,使用 fastjson 库的 JSONObject.toJSONString
String jsonString2 = JSONObject.toJSONString(jsonObject2);
相互转换的过程中,注意【序列化】,如:SerializerFeature.WriteMapNullValue
不然 null 值的属性会丢失。
// json对象 >> Json字符串,默认不带序列化,会省略null值的内容
String jsonString1 = jsonObject.toJSONString();
// json对象 >> Json字符串,带序列化 SerializerFeature.WriteMapNullValue,就会有null值的内容
String jsonString2 = JSONObject.toJSONString(jsonObject, SerializerFeature.WriteMapNullValue);
SerializerFeature的选项:
QuoteFieldNames 输出key时是否使用双引号,默认为true
WriteMapNullValue 是否输出值为null的字段,默认为false
WriteNullNumberAsZero 数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty 字符类型字段如果为null,输出为"",而非null
WriteNullBooleanAsFalse Boolean字段如果为null,输出为false,而非null