博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xml转json,以及踩过的坑
阅读量:3914 次
发布时间:2019-05-23

本文共 1541 字,大约阅读时间需要 5 分钟。

通过Postman发送xml,通过后端解析为JSON

  • 通过Postman调用接口
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");}
  • json数据中的坑:传入数组只有1个的时候会报错,获取不到数组中的数据。
  • 原因是:当数组只1个的时候转换出来的json格式为
{"name":"我是时生","age":"23","sex":"男","item":{"partId":"CSDN","quantity":"10000"}}

当数组为两个以上时转换出的json格式为

{"name":"我是时生","age":"23","sex":"男","item":[{"partId":"CSDN","quantity":"10000"},{"partId":"掘金","quantity":"10000"}]}

细心点应该能看出来区别,数组只有1个的时候没有中括号,阿里的依赖转换无法识别,也就获取不到其中的数据了。

  • 解决方法:判断数组是否是一个,然后遍历json字符串,添加中括号"[ ]"
// 去掉"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/

你可能感兴趣的文章
记一位朋友斩获BAT技术专家Offer的面试经历
查看>>
Java并发编程之阻塞队列与Fork/Join框架
查看>>
并发、并行傻傻分不清楚?
查看>>
一个Java程序员该有的良好品质
查看>>
程序员创业之如何获取第一笔风险投资
查看>>
听说小米进入世界500强啦?解读历年500强数据了解国情
查看>>
Maven中央仓库发布历程
查看>>
springBoot的过滤器,监听器,拦截器
查看>>
树状数组入门(简单的原理讲解)
查看>>
程序员的迷茫,迷茫的程序员
查看>>
datawhale课程[动手学数据分析]——Task01:数据加载及探索性数据分析
查看>>
datawhale课程[动手学数据分析]——Task02:数据清洗简述
查看>>
《统计学习方法第二版》学习笔记2——感知机
查看>>
《统计学习方法第二版》学习笔记3——K近邻法
查看>>
MySQL: win10安装MySQL 8.0.21成功记录【转载】
查看>>
IT从业者的迷思与求解之道——座谈会实录摘选
查看>>
程序员过关斩将--数据库的乐观锁和悲观锁并非真实的锁
查看>>
被忽略的TraceId,可以用起来了
查看>>
[原]调试PInvoke导致的内存破坏
查看>>
【NServiceBus】什么是Saga,Saga能做什么
查看>>