json转换
注:以下全用的是com.alibaba.fastjson
1.实体转String转json
User user = new User();
user.age(18);
user,name("张三");
//实体转String
String json = JSON.toJSONString(result);
//String跨项目传参的时候会出现/,JSONObject则能避免此类问题
//String转JSONObject
JSONObject jsonObject = JSONObject.parseObject(json);
2.取出json数据
String json;//假设里面的是json数据
JSONObject jsonObject = JSONObject.parseObject(json);
普通json
//直接jsonObject.对应的类型
String name = jsonObject1.getString("name");
//复杂json
JSONObject jsonObject1 = jsonObject.getJSONObject("对应字段");
如下json:
{
"status": "polling",
"billstatus": "got",
"message": "",
"autoCheck": "1",
"comOld": "yuantong",
"comNew": "ems",
"lastResult": {
"message": "ok",
"state": "0",
"status": "200",
"condition": "F00",
"ischeck": "0",
"com": "yuantong",
"nu": "V030344422",
"data": [{
"context": "上海分拨中心/装件入车扫描",
"time": "2012-08-2816: 33: 19",
"ftime": "2012-08-2816: 33: 19",
"status": "在途",
"areaCode": "310000000000",
"areaName": "上海市"
},
{
"context": "上海分拨中心/下车扫描",
"time": "2012-08-2723: 22: 42",
"ftime": "2012-08-2723: 22: 42",
"status": "在途",
"areaCode": "310000000000",
"areaName": "上海市"
}
]
},
"destResult": {
"message": "ok",
"state": "0",
"status": "200",
"condition": "F00",
"ischeck": "0",
"com": "speedpost",
"nu": "EX015142583SG",
"data": [{
"context": "[01000]Final delivery Delivered to: SLOVESNOV",
"time": "2016-05-24 14:00:00",
"ftime": "2016-05-24 14:00:00",
"status": "签收",
"areaCode": null,
"areaName": null
}]
}
}
//获取到lastResult
JSONObject jsonObject1 = jsonObject.getJSONObject("lastResult");
//获取响应字段
String message = jsonObject1.getString("message");
//获取里面的data
String jsons = jsonObject.getString("data");
//data可能是多条
JSONArray jsonArray = JSONArray.parseArray(jsons);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject json = jsonArray.getJSONObject(i);
String context = json.getString("context");
/**json传Date格式的时候会报错,先用时间转化,在用SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")格式化日期;*/
String ftime = json.getString("ftime");
String areaCode =json.getString("areaCode");
String status = json.getString("status");
}
3.json转实体
String json = json数据;
//st的数据对应json体的内容
实体类 st = JSONObject.parseObject(json, 实体.class);