问题的场景
:
从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}}
这个问题我也不太好描述,如果有遇到同样问题的朋友们希望能帮助到你。语言组织不太好
1、获取
json
字符串,
gson
.to
Json
(entity);
2、通过from
Json
方法
将
json
字符串
json
Str转换为type类型,
gson
.from
Json
(
json
Str,type);
在此过程中,
gson
.to
Json
(entity)获取到的
json
字符串如下:"{"name":"张三","age":17}",再转map
结果就成了"nam...
JSON
的定义:
一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的
解决
方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。
JSON
采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。
JSON
对象:
JSON
中对象(Object)以”{“开始, 以”}”结束. 对象中的每一个item都是一个key-
value
对, 表现为”key:
value
”的形式, key-
value
对之间使用逗号分隔. 如:{“name”:”coolxing”, “age”=24, “male”:true, “address”:
工作中遇到的问题
解决
方案(仅供自己参考)后端接收到类似:" "1111" "这样
两个
双引号
的数据,可以用
Gson
去除掉一对
双引号
或者alibaba的fast
Json
也可以实现同样的效果
1.利用
gson
将
json
类型的String串
解析
为对应的对象
channelSearchEnum cse =
gson
.from
Json
( obj , channelSearchEnum.class);
2.将
json
array类型的String串
解析
成对象
方法
:
Gson
gson
= new
Gson
();
Json
Parser parser = ne
文章目录0.前言0.1
解决
方法
1.
gson
的使用1.1对象转
json
1.2
json
转对象1.3属性重命名 @SerializedName 注解的使用1.4
json
序列化成map2.
Gson
的配置
遇到一个场景使用g
json
解析
无
固定
模板
的
json
串变成TreeMap时
value
值
出现
两个
双引号
0.1
解决
方法
如果直接用
Json
Object.toSring或者jo.get(“name”).toString的话,取出的
值
会有
双引号
,直接getAsString就没有
双引号
啦
1.
gson
的使用
在使用fast
json
解析
json
时,有时会遇到
json
串中包含英文中的
双引号
,比如在评论中包含
双引号
的评论。如下所示
json
串:{"returncode":0,"message":"","result":{"pageindex":1,"pagecount":1,"rowcount":15,"list":[{"topicid":21376821,"topictype":"","title":"A4油
{"fssj":"20170717145154","person1":"管理员","person2":"销售经理22","rybm_fsr":1,"rybm_jsr":3,"xtxxbm":125,"xxbt":"ddd","xxnr":"dddddd
/strong>dadadaddddd
decoration: underline;">ddfff","zt":"0"}
开发中,有时候后台返回的
json
格式键
值
名是不
固定
的,如{ "red" : "1", "yellow" : "1" } , 可能只有red、yellow这
两个
键
值
名,也可能有好几个.
解决
方式
这种情况下,我们可以声明为Map<String,String>,然后
Gson
就可以
解析
了。
Map的存储结构式Key/
Value
形式,Key 和
Value
可以是普通类型,也可以是自己写的JavaBean(上一篇博客),还可以是带有泛型的List(本文).本例中您要重点看如何将
Json
转回为带泛型的对象List,并且List中的泛型对象有多种实体.