欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

xml转为多层嵌套Json然后再解析为Map,数值类型转为科学计数法

程序员文章站 2022-03-23 18:37:01
...

xml转为多层嵌套Json然后再解析为Map,数值类型转为科学计数法

这是一个忧伤的问题,一开始我一直往Json解析为Map时,把这个数据类型变为String类型,然后研究了半天,参考了网上很多方法,基本上都是一层的json可以转为String,然后只要是嵌套json就不行了,所以就需要循环遍历,但是这种循环遍历太麻烦了。

我就想在xml转为json的时候,将所有的类型都变为字符串

我用的xml转为json的方式:
maven引入:(研究了半天非maven项目引入这个包,没研究出来,最后直接写的一个maven项目然后通过接口来让非maven的项目处理xml转json的)

      <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20180813</version>
        </dependency>

最开始的代码,是转为json对象,然后toString获取字符串xml转为多层嵌套Json然后再解析为Map,数值类型转为科学计数法
然后Debug看源码,看看在转为json的时候是什么时候给他转为Long对象的
xml转为多层嵌套Json然后再解析为Map,数值类型转为科学计数法

在进入parse方式之后
xml转为多层嵌套Json然后再解析为Map,数值类型转为科学计数法

有这样一句话,根据断点,进入了stringToValue方法中发现在这块将这个字段转换为long类型,
然后我去看keepStrings这个布尔参数有没有被处理过,发现这个参数是父层方法传进来的
xml转为多层嵌套Json然后再解析为Map,数值类型转为科学计数法
那直接使用toJSONObject(String string, boolean keepStrings)这个方法。
现在的代码:
xml转为多层嵌套Json然后再解析为Map,数值类型转为科学计数法
问题解决。
(如果你不是xml转为json,直接是多层嵌套json,可以试试先将他转为xml,然后用这种方法在转为json,这种方式我没有试验过,如果你实在没有好的方法来解决嵌套json转为Map,数值型转为了科学计数法的话,可以尝试下,如果你有好的方法,如果不介意的话,可以动动你的小手指,将方法写在评论上么。感谢)