您的位置:首页 > 编程语言 > Java开发

java中Json数据和map数据的转换&&解析服务器返回的json

2017-03-15 11:49 639 查看
(一). map数据转为json字符串

String startTime1=”11:11” String startTime1=”12:12”

String startTime1=”12:00” String startTime1=”01:00”

Map<String,String> m= Maps.newHashMap();
if(StringUtils.isNotBlank(startTime1)&&StringUtils.isNotBlank(endTime1)){
m.put(startTime1,endTime1);
}
if(StringUtils.isNotBlank(startTime2)&&StringUtils.isNotBlank(endTime2)){
m.put(startTime2,endTime2);
}
if(m.size()>0){
if (user != null) {
user.setReceive_time(Json.toJson(m,JsonFormat.compact()));
this.userService.update(user);
}
}


最终转换成的json字符串格式为{“11:11”:”12:12”,”12:00”:”01:00”}

(二) 1 json字符串转为map的格式用entry形式解析

if (user != null) {
String ss=null;
if(org.apache.commons.lang3.StringUtils.isNotBlank(user.getReceive_time())){
ss=user.getReceive_time();
}
if(ss!=null){
Map<String,String> map=Json.fromJson(Map.class,ss);
if(map!=null){
int i=1;
for(Map.Entry<String,String> entry:map.entrySet()){
mv.addObject("startTime"+i,entry.getKey());
mv.addObject("endTime"+i,entry.getValue());
i++;
}
}
}


这样,取出的json字符串已经转为了map的格式.

2 json字符串转为map的格式用Interator形式解析示例

String store_payment = CommUtil.null2String(config.getStore_payment());
Map map = Json.fromJson(HashMap.class, store_payment);
if (map != null) {
for (Iterator it = map.keySet().iterator(); it.hasNext();) {
String key = (String) it.next();
Object val = map.get(key);
mv.addObject(key, val);
}
}


json转换成list

List <string >  ss = Json.fromJson(List.class, g.getOld_image_detail_path());


三 解析服务器返回的json

下面是服务器返回的json数据

{
"error_code": 1,
"description": "Tracking order on Speedlink system success",
"order": {
"detail": {
"order_no": "G00151138392",
"awb_tracking_no": "G00151138392",
"delivery_date": "17/03/2018 03:32pm",
"delivery_person": "huỳnh anh"
},
"tracking": [
{
"date_time": "2018-03-08 11:19:01",
"branch": "Cửa khẩu Nội Bài",
"hub": "Hà Nội",
"status": "Processing",
"status_vn": "Đang xử lý",
"description": "Confirmed booking",
"description_vn": "Đã nhận được yêu cầu lấy hàng"
},
{
"date_time": "2018-03-12 18:05:03",
"branch": "Hà Nội",
"hub": "Hà Nội",
"status": "InTransit",
"status_vn": "Trung chuyển",
"description": "Trung chuyển từ(Hà Nội đến Hồ Chí Minh)",
"description_vn": "In Transit from (Hà Nội to Hồ Chí Minh)"
}
]
}
}


下面是解析

根据返回结果的格式,这里我们新建一个javabean

public class SpeedlinkTrack extends BaseModel {

private String date_time;
private String branch;
private String hub;
private String status;
private String status_vn;
private String description;
private String description_vn;
}


下面是解析代码的片段

JSONObject resultJson = JSONObject.parseObject(result);
if (!StringUtils.equals(resultJson.getString("error_code"), "1")) {
logger.error(remark + "失败,单号为:" + changeNo);
logger.error("错误报文:" + resultJson);
return;
}
JSONObject order = JSONObject.parseObject(resultJson.getString("order"));
JSONObject detail = JSONObject.parseObject(order.getString("detail"));
List<SpeedlinkTrack> trackList = JSONArray.parseArray(order.getString("tracking"), SpeedlinkTrack.class);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java json map
相关文章推荐