【Java对象、Json对象、Json字符串】相互转换

        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

猜你喜欢

转载自blog.csdn.net/BillKu/article/details/142989218