fastjson解析json文本
背景:
项目中经常会用到解析JSON文本,有的同事特别依赖公司自己封装的工具类,离开了工具类就不知道怎么去解析,下面简单的介绍一下用阿里的fastjson去解析文本
引入Maven依赖
注:尽量使用1.2.69以上版本,69以下版本有重大漏洞。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.72</version>
</dependency>
简单举例:
假设下面是待解析String 类型的json文本jsonParams:
{
"retCode": "0000",
"retInfo": "PEND",
"account": "815588888",
"status": 1,
"list": [{
"userId": "232ed6e1878e456cb990d496c282badd",
"phone": "123"
},
{
"userId": "8a082bca79304ce78330c492370f8974",
"phone": "666"
}
]
}
- 从String 类型的json文本里获取某个字段
// 首先将String类型的文本转化成JSONObject
JSONObject jsonObject = JSON.parseObject(jsonParams);
// 获取jsonObject中String类型的字段retCode
String retCode = jsonObject.getString("retCode");
// 获取jsonObject中Integer类型的字段status
Integer status = jsonObject.getInteger("status");
// 获取jsonObject中集合类型的字段list
JSONArray array = jsonObject.getJSONArray("list");
- 如果用实体去接收,可以自己定义一个相应的类(假设是Product)
Product product = JSON.parseObject(jsonParams, Product.class);
JSON.toJSONString(Object object)
可以把Object 类型的实体转换成JSON字符串。
String jsonString = JSON.toJSONString(product);
- 里面有很多高度封装好的方法可以直接去使用,很方便,大家可以自己去探索一下,根据自己的需要去封装一个工具类。