Android解析

一、解析json

1.Gson

摘抄自https://www.jianshu.com/p/bca8117ad49e

Gson提供了fromJson()方法来实现从Json相关对象到Java实体的方法。
在日常应用中,我们一般都会碰到两种情况,转成单一实体对象和转换成对象列表或者其他结构。

第一种:

比如json字符串为:[{“name”:”name0”,”age”:0}]

Person person = gson.fromJson(str, Person.class);

提供两个参数,分别是json字符串以及需要转换对象的类型。

第二种,转换成列表类型:

List<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());

可以看到上面的代码使用了TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。

调试注意:

经过Gson解析成为map的数据,经常需要通过map.get(key)获取类型为Object的值,我们常需要将Object进行强制转换,转换为我们需要的类型。这里注意,若我们想将整形数字1存入json串,经gson解析后,可能会变成1.0,这样我们只能使用Double类对其进行强转,再使用Double类型的intValue()方法将其转为整形。

2.FastJson

摘抄自https://www.jianshu.com/p/f20ffefeec4d

fastJson是阿里巴巴出品的一个json序列化工具,我们需要下载对应的jar
我们可以到Maven中心库下载对应版本的JSON.jar

将对象转换成Json串,可以用下面的方法:

JSON.toJSONString(对象);

将Json串转换成java对象,分为两种情况:

//对象是单个元素
JSON.parseObject(json串,CLAZZ);
//对象包含多个元素
JSON.parseArray(json串,CLAZZ);

下面是转换实例:

List <---->Json

List<String> stringList = new ArrayList<>();
stringList.add("aaa");
stringList.add("bbb");
stringList.add("ccc");
stringList.add("ddd");
//list-->json
String jsonString = JSON.toJSONString(stringList);
//json-->list
List<String> list =JSON.parseArray(jsonString,String.class);

Map <---->Json

Map<String,Integer> map = new HashMap<>();
map.put("zhangsan", 18);
map.put("lisi", 28);
map.put("wangwu", 38);
//map-->json
String jsonString2 = JSON.toJSONString(map);
//json-->map
Map<String,Integer> map2 =JSON.parseObject(jsonString2,Map.class);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值