将前段时间项目开发中用到的JSONObejct的使用进行一个汇总
1、包的依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.79</version> </dependency>
2、代码中引入
import com.alibaba.fastjson.JSONObject;
3、将String转化成JSON
JSONObject lineJson = JSONObject.parseObject(str, JSONObject.class);
//或者
JSONObject lineJson = JSONObject.parseObject(str);
4、将String 转化为 JSONArray
JSONArray jsonArray=JSONObject.parseArray(str)
5、JSONObject 的输出
格式化的输出
System.out.println(JSON.toJSONString(res,
SerializerFeature.PrettyFormat,
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteDateUseDateFormat));
6、关于打印出来里面含有$ref的问题
出现 $ref 大概率是因为返回的内容中有重复的数据,重复的数据指向同一个引用
解决方法
1.将json对象对象转化为json字符串
2.将得到的json字符串在转回json对象
//以JSONObject 为例,创建一个JSONObject 对象
JSONObject orgData = new JSONObject();
//把JSONObject 对象转换为json字符串
String str = JSON.toJSONString(jsonData,
SerializerFeature.DisableCircularReferenceDetect);
//把得到的json字符串再次转换回JSONObject 对象
JSONObject resultData = JSONObject.parseObject(str);
7、判断一个JSONObject是否为空的问题
直接new 一个的结果是 {}
如何判断其里面是否有数据呢?
if (jsonObject.isEmpty()) {
//返回true说明是空
}