fastJson将对象序列化成json字符串
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.60</version> </dependency>
JSON_OBJ_STR = "{"studentName":"lily","studentAge":12}";
JSON_ARRAY_STR = "[{"studentName":"lily","studentAge":12},{"studentName":"lucy","studentAge":15}]";
COMPLEX_JSON_STR="{"teacherName":"crystall","teacherAge":27,"course":{"courseName":"english","code":1270},"students":[{"studentName":"lily","studentAge":12},{"studentName":"lucy","studentAge":15}]}";
字符串转json对象:JSONObject jsonObject = JSON.parseObject(JSON_OBJ_STR);
字符串转json数组:JSONArray jsonArray = JSON.parseArray(JSON_ARRAY_STR);
字符串转复杂json对象(嵌套):JSONObject jsonObject = JSON.parseObject(COMPLEX_JSON_STR);
获取嵌套里面的对象:JSONObject innerObject = jsonObject.getJSONObject("xxx");
json字符串转javaBean:Student student = JSON.parseObject(JSON_OBJ_STR, new TypeReference<Student>() {});
复杂对象同上一样转;
javaBean 转json字符串:String bookjson = JSONObject.toJSONString(book, SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullBooleanAsFalse);
上面的SerializerFeature有好多枚举类型,上面的是null值写成“”,还有空值不写进字符串的
SerializerFeature.NotWriteDefaultValue,比如studentName为空的时候,序列化成json字符串就是{"studentAge":"21"},没有sthdentName