说明:此处的转换是基于fastjson 的
添加依赖
<dependency>
<groupId>com.alibabagroupId>
<artifactId>fastjsonartifactId>
<version>1.2.75version>
dependency>
// JSON 字符串
String jsonStr = "{\"code\":0,\"msg\":\"success\",\"data\":3}";
// 转json对象
JSONObject jsonObject = JSON.parseObject(jsonStr);
JSONObject jsonObject = new JSONObject();
// 转成字符串
String jsonStr = jsonObject.toJSONString();
String jsonStrArr = "[{\"code\":0,\"msg\":\"success\",\"data\":3},{\"code\":0,\"msg\":\"success\",\"data\":3}]";
// json字符串数组--> JSONArray
JSONArray jsonArray = JSON.parseArray(jsonStrArr);
// 遍历JSONArray
for (Object o : jsonArray) {
JSONObject jsonObject = (JSONObject) o;
}
【注】:字符串数组类型不可直接转JSONObject,不然会报错。
JSONArray jsonArray = new JSONArray();
String strArr = jsonArray.toJSONString();
字符串 转 Java对象
public class ReponseObj {
int code;
String msg;
String data;
}
String jsonStr = "{\"code\":0,\"msg\":\"success\",\"data\":\"3\"}";
// 方法1
ReponseObj reponseObj = JSON.parseObject(jsonStr,ReponseObj.class);
// 方法2 (推荐)
// JSON字符串与JavaBean之间的转换建议使用TypeReference 类
ReponseObj reponseObj = JSON.parseObject(jsonStr, new TypeReference<ReponseObj>(){});
Java 对象 转 JSON字符串
ReponseObj reponseObj = new ReponseObj();
String jsonStr = JSON.toJSONString(reponseObj);
字符串数组 转 Java对象
String jsonStrArr = "[{\"code\":0,\"msg\":\"success\",\"data\":\"3\"},{\"code\":0,\"msg\":\"success\",\"data\":\"3\"}]";
ArrayList<ReponseObj> list = JSON.parseObject(jsonStr, new TypeReference<ArrayList<ReponseObj>>(){});
java 对象 转 json对象
String jsonStr = JSON.toJSONString(reponseObj);
JSONObject jsonObj = JSON.parseObject(jsonStr);
json对象 转 Java对象
// 方法1 先转换为json字符串,再使用parseObject
String jsonStr = jsonObj.toJSONString();
ReponseObj reponseObj = JSON.parseObject(jsonStr,new TypeReference<ReponseObj>() {});
// 方法2 直接使用toJavaObject
Student stu = JSON.toJavaObject(jsonObj, ReponseObj.class);