首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

采用Gson解析含有多种JsonObject的复杂json

(https://github.com/google/gson)去解析 json 应该是很常见的,大部分的情况下我们只要创建一个 Gson 对象,然后根据 json 和对应的 Java 类去解析就可以了...比如先手动解析拿到 attributes 对应的 jsonObject,根据与它同级 type 对应的 value 就可以判断这一段 jsonObject 对应的 Java 类是哪个,最后就采用 gson.from...通过研究 Gson 的文档,发现可以通过自定义JsonDeserializer的方式来实现解析这种 jsonObject 类型不同的情况。...Ⅱ.如果在解析过程中发现有些类型没有注册到 MultiTypeJsonParser 的 Builder 中,解析的时候碰到相应的 jsonObject 就直接返回null。...5 结语 对于如何优雅的解析这种类型不同的 JsonObject ,刚开始我是缺少思路的,在网上也没有查到合适的文档。但是通过查看 Gson 的文档和源码,通过自己的理解和分析,逐步的完成了这个过程。

2.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

Gson 解析 Json 容错策略

但遇到这样的情况,你还用默认的 GSON 策略去解析,你将得到一个 Crash。...使用了 Gson 之后,遇到花括号 {} 会生成一个 JsonObject,而字符串则是基本类型的 JsonPrimitive 对象,它们在 Gson 内部的解析流程是不一样的,这就造成了 IllegalStateException...既然 TypeAdapter 是 Gson 解析的银弹,找不到解决方案,用它就对了。思路继续是用 JsonDeserializer 来接管解析,这一次将 User 类的整个解析都接管了。...JSON 数据,当然你也可以通过 Gson 本身提供的一些方法去解析,这里只是提供一个思路而已。...JSONObject 和 JSONArray 类,和 Gson 没有任何关系,Gson 只是起到了一个桥接的作用,好像这个例子也没什么实际用处。

1.2K41

Android网络请求与数据解析,使用Gson和GsonFormat解析复杂Json数据

对于json解析,官方的原生解析Gson解析,JSON是一种轻量级的数据交换格式,有很好的可读性和快速编写的特点。建议你可以下载一个Google插件,JSON Viewer可以便于看起来舒服点。...city=%E5%B9%BF%E5%B7%9E 使用Gson解析 public static WeatherBean getWeather(String res) { //创建Gson对象 Gson...:1.原生解析2.gson解析 JSONObject obj = new JSONObject(msg);//捕获异常 int dui = obj.getInt("dui"); String...解析上一步 //1.创建Gson对象 Gson gson = new Gson(); //参数1:满足json对象格式的字符串 String data=obj.getString("data"); Weather...(result).getString("data"); //使用Gson Gson gson = new Gson(); //使用Gson,快速解析,添加jar包 //1.解析普通的json对象 //2

2.2K30

JSON快速入门(Java版)-imooc

的使用 4-1 GSON介绍 4-2 GSON生成JSON数据 4-3 生成JSON数据 4-4 GSON解析 4-5 GSON解析日期转换 4-6 集合类解析 4-7 总结 第一章:课程概述 1-...总结 本章总结 讲解了如何生成JSON格式数据 讲解了如何解析JSONObject 第四章:GSON的使用 4-1 GSON介绍 开源地址 https://github.com/google/gson...} 4-4 GSON解析 代码演示: package com.myimooc.json.gson; import com.google.gson.Gson; import com.google.gson.GsonBuilder...解析日期转换 代码演示: // 带日期转换 Gson gson2 = new GsonBuilder().setDateFormat("yyyy-MM-dd").create(); DiaosiWithBirthday...().toString()); 4-6 集合类解析 代码演示: // 替换为集合类 private List major; GSON会自动解析集合类字段 // 集合类解析 System.out.println

1K50

Android Json解析使用简介

解析方式 特点 适用场景 org.json 书写简便,消耗内存 小文档,频繁访问 Gson 按需解析,耗内存少,效率低于Jackson 按需解析 Jackson 大文档完全解析效率最高,必须完全解析文档...---- org.json 解析 JSONObject jsonObject = new JSONObject(jsonString); JSONArray vegetable = jsonObject.getJSONArray...(2).getString("color");//红色 jsonObject.getString("food");//米饭 Gson 解析 根据Json文档创建对应的JavaBean类,不需要写全json...gson.fromJson(jsonString, EatBean.class); 这样json就被解析成了一个对象,使用gson解析时JavaBean对象不需要全部的属性都和json文档一一对应,按需编写即可...Jackson 解析 根据json文档创建对应的JavaBean类,可以参考上面,和Gson解析有所区别的是,json文档中所有属性必须写到JavaBean中的 导入Jackson库 在网下下载jackson

1.2K20

Android中JSON库性能比较

JSON类库分别为:JSONObjectGson、FastJson和Jackson。 简单介绍下四个类库的身份背景。 JSONObject:Android原生提供的Json处理API。...其核心是JSONObject和JSONArray两个类。 GsonGson是目前功能最全的Json解析工具,Gson当初是为因应Google公司内部需求而由Google自行研发而来。...Jackson:基于事件驱动,与GSON相同,先创建一个对应于JSON数据的JavaBean类就可以通过简单的操作解析出所需JSON数据。...但和Gson解析不同的是,GSON可按需解析,Jackson无法按需解析。 选择一个合适的JSON库要从多个方面进行考虑:序列化与序列化的耗时及内存的消耗,还有就是代码操作是否简单。...JSONObject处理速度最快,然后是FastJson,Gson,Jackson最差; FastJson操作,处理量级对内存消耗影响不大,所耗内存相对较少; 进行大量操作时,JSONObject内存消耗明显增加

2.3K20

Kotlin入门(31)JSON字符串的解析

使用JSONObject和JSONArray对json串进行手工解析,处理过程比较常规,完成该功能的Kotlin代码与Java代码大同小异。...org.json,谷歌公司也提供了一个增强库gson,专门用于json串的自动解析。...Gson的各种处理方法了,Gson常用的方法有两个,一个名叫toJson,可把数据对象转换为json字符串;另一个名叫fromJson,可将json字符串自动解析为数据对象,方法调用的代码格式为“fromJson...下面是个通过gson库实现json自动解析的Kotlin代码例子: class JsonConvertActivity : AppCompatActivity() {     private val user...包直接将json串解析为对应格式的数据类对象             val newUser = Gson().fromJson(json, UserInfo::class.java)

4K20
领券