本文共 1541 字,大约阅读时间需要 5 分钟。
import org.json.JSONObject;import org.json.XML;@RequestMapping("/xmltojson")public Result xmlToJson(@RequestBody String xml){// 首先将String类型xml转换为jsonJSONObject xmlToJson = null;try { xmlToJson = XML.toJSONObject(xml); } catch (Exception e) { e.printStackTrace(); return new Result("0", "解析失败,您上传的格式不正确"); } // 将json类型转换为String String jsonTOStr = xmlToJson.toString(); // 通过阿里巴巴依赖转换可以获取json中的参数 com.alibaba.fastjson.JSONObject jsonParam = com.alibaba.fastjson.JSONObject.parseObject(jsonTOStr); // 获取参数 String name = jsonParam.getString("name"); String age = jsonParam.getString("age"); String sex = jsonParam.getString("sex"); // 获取json数组中的数据时有个坑,稍后说一下 JSONArray items= jsonParam.getJSONArray("items");}
{"name":"我是时生","age":"23","sex":"男","item":{"partId":"CSDN","quantity":"10000"}}
当数组为两个以上时转换出的json格式为
{"name":"我是时生","age":"23","sex":"男","item":[{"partId":"CSDN","quantity":"10000"},{"partId":"掘金","quantity":"10000"}]}
细心点应该能看出来区别,数组只有1个的时候没有中括号,阿里的依赖转换无法识别,也就获取不到其中的数据了。
// 去掉"JSONArray items= jsonParam.getJSONArray("items");" // 加上下面判断语句 // 当json中产品明细只有一条时通过此方式加上中括号 String item = jsonParam.get("items").toString(); String substring = item.substring(0, 1); if (!"[".equals(substring)) { substring = "[" + item + "]"; } else { substring = item; } JSONArray items = JSONArray.parseArray(substring);
转载地址:http://kxprn.baihongyu.com/