gson解析无固定模板的json串时value值出现两个双引号的解决方法

您所在的位置:网站首页 json没有双引号 gson解析无固定模板的json串时value值出现两个双引号的解决方法

gson解析无固定模板的json串时value值出现两个双引号的解决方法

2023-08-26 08:27| 来源: 网络整理| 查看: 265

问题的场景:

从json文件中读取数据然后进行增加字段并且排序后,重新写入json文件,发现原本的数据中出现“\"”。

{"domain":{"mty":"\"hhy\"","mt":"hh"},"weight":{"mty":70,"mt":30}}

原因:

在解析含有字符串的数据时候通过

JsonObject jsonObject1 = (JsonObject) new JsonParser().parse(json);的方式去解析的时候所有的带有字符串的value值都会自动再加上一层双引号。

所以再次写入的时候才会出现转义过的双引号

解决方法:

(1)如果没有解析出来的数据是按照原本固定的顺序排列的要求的话可以选择fastjson进行解析,不会带上双引号,亲测可行。

(2)如果必须固定位置的使用LinkedHashMap进行存取,使用gson解析出来的数据就是原来的顺序,然后针对双引号的问题,我是在最终把数据转载到LinkedHashMap的时候使用replace

domainMap.put(map.getKey(), map.getValue().toString().replace("\"",""));去掉了其中的一个双引号。 运行之后的结果如下:

{"domain":{"mt":"hh","mty":"hhy"},"weight":{"mt":70,"mty":30}}

这个问题我也不太好描述,如果有遇到同样问题的朋友们希望能帮助到你。语言组织不太好



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3