Json数据解析之Gson

报错: Caused by: java.lang.IllegalStateException: Expected a double but was BEGIN_OBJECT at line 1 column 101 path $.data.datastreams[0].datapoints[0].value

原因:json数据解析出错。

解决:JSON数据分为两种----对象和数组,对象用{}括起来,数组用[]括起来。我是通过Gson进行数据解析的,根据上报的值,得知我的value是一个对象,需要在原有解析类的基础上增加一个value的类,理清了关系后自己重新写了gson数据解析的类,逻辑关系整理起来容易混乱,也可以直接根据上报的数据,然后通过json转换工具直接生成所需要的类(在搞懂的基础上,更推荐这种方式,节省时间。),还要注意在主类(获取json解析数据的类)中更改对应的数据获取方式。更改后我在主类中做出的改变:watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg55qE5b-D5a2Q,size_15,color_FFFFFF,t_70,g_se,x_16 , watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg55qE5b-D5a2Q,size_8,color_FFFFFF,t_70,g_se,x_16

 拓展:Json解析方式之一是通过Gson,Gson是Google提供的用来在Java对象和Json数据之间进行映射的Java类库,可以将Java对象和Json数据进行相互转换,使用时需要导入gson的.jar包,放在lib文件夹下,导入后记得“Add as library”。

Json数据分为两种----对象和数组,对象用{}括起来,数组用[]括起来。Json数组要用List保存。

解析Json对象:Gson gson = new Gson();User user=gson.fromJson(jsonData,User.class);

解析Json数组:Gson gson=new Gson();List<User> userList=gson.fromJson(jsonData, new TypeToken<User>(){}.getType());

猜你喜欢

转载自blog.csdn.net/weixin_58222015/article/details/124487554