作为一名android 客户端开发人员,学会解决问题和总结问题的习惯是很重要的。。。那么我们app接口数据返回通常是以下格式:
{"code":"0000","data": {"code":"0002","resultData":null,"resultMsg":"用户Token过期,请重新登入","error":[],"msg":""}
把以上的json数据放在线JSON字符串转Java实体类(JavaBean)网址(http://www.atool.org/json2javabean.php)上生成下面的Java实体类:
public class JsonRootBean { private String code; private Data data; private List<String> error; private String msg; public void setCode(String code) { this.code = code; } public String getCode() { return code; } public void setData(Data data) { this.data = data; } public Data getData() { return data; } public void setError(List<String> error) { this.error = error; } public List<String> getError() { return error; } public void setMsg(String msg) { this.msg = msg; } public String getMsg() { return msg; } }
我们知道,所有的接口返回的数据格式都是一样的,就拿上面的返回结果来说吧,返回的Json字符串中只是"data": {"code":"0002","resultData":null,"resultMsg":"用户Token过期,请重新登入"},这个
data中的“resultData”中的返回数据不一样,其他数据格式都是一样的,所以我们这里使用泛型Java实体类,一次解析全部搞定!
把上面的Java实体类中的 Data成员变量改为:
public class JsonRootBean<T> { private Data<T> data; public Data<T> getData() { return data; } public void setData(Data<T> data) { this.data = data; } }
而其中的Data类为:
public class Data<T> { private String code; private T resultData; private String resultMsg; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public T getResultData() { return resultData; } public void setResultData(T resultData) { this.resultData = resultData; } public String getResultMsg() { return resultMsg; } public void setResultMsg(String resultMsg) { this.resultMsg = resultMsg; } }
那我们在解析的时候,对返回的Json串,作如下处理:
1、如果返回的字符串resultData直接为 {“对象”},处理如下:
Type jsonType = new TypeToken<JsonRootBean<TripResultData>>() {}.getType();
JsonRootBean<TripResultData> rootBean = new Gson().fromJson(jsonStr, jsonType);
然后根据 rootBean的get方法,依次获取相应的data值 ,然后根据泛型 T 为TripResultData的具体实体类来获取具体的数据;
2、如果返回的字符串resultData直接为数组 [{“对象”}],处理如下:
Type jsonType = new TypeToken<JsonRootBean<TripResultData>>() {}.getType();
JsonRootBean<List<TripResultData>> rootBean = new Gson().fromJson(jsonStr, jsonType); 其实实体类泛型写在列表里面 List<T>;
其实这个时候,所有的数据都已经解析到这个 rootBean里面了,你就可以自己根据自己写的的方法获取。
相关推荐
在Java编程中,Gson库是一个非常常用的工具,它由Google提供,用于在Java对象和JSON数据之间进行互相转换。本文将深入探讨如何使用Gson处理泛型,并将其转换为JSON字符串。 首先,理解泛型在Java中的作用是至关重要...
在本文中,我们将深入探讨如何使用Gson解析JSON数据,包括处理简单JSON和复杂的JSON结构。 首先,我们要了解JSON的基本概念。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,...
本教程将深入探讨如何使用Gson库解析复杂的JSON实例,让你只需寥寥几行代码就能轻松处理JSON解析问题。 ### Gson库简介 Gson库的核心功能是将Java对象(如自定义类)转换为JSON字符串,反之亦然。这个库非常直观,...
1、生成Json数据 2、使用Gson解析Json数据(单个json对象、json数组和json对象内嵌json数组) // 这里有两篇好心人的博文,有详细的讲解 http://www.jb51.net/article/32547.htm ...
2. 使用Gson实例解析JSON:有了JSON字符串和对应的数据模型类,我们可以使用Gson的fromJson()方法将JSON转换为Java对象。 ```java String jsonString = "{\"name\":\"John Doe\",\"age\":30,\"city\":\"New York\"}...
本教程将重点介绍如何使用Gson库在Java环境中解析JSON数据。 Gson是Google提供的一款开源库,它能够将Java对象转换为对应的JSON字符串,也可以将JSON数据反序列化为Java对象。这对于处理JSON数据非常方便。在本示例...
Gson解析json,实现泛型解析数据,根据用户传入的类型,解析称用户需要的,Common \CommonList 里面的status message data相关的约定可以更具开发者与服务器的约定修改
在Java中,你可以定义一个类来表示你的数据结构,然后使用Gson库将其转换为JSON字符串: ```java public class Person { private String name; private int age; // getters and setters } Person person = ...
使用Gson,我们可以轻松地解析JSON文件,将其中的数据映射到Java对象上。 要使用Gson解析JSON文件,首先需要在项目中引入Gson库。如果你的项目是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
本篇文章将深入探讨如何使用Gson库解析JSON。 一、Gson简介 Gson是Google提供的一个开源项目,它能够将Java对象转换成JSON格式的字符串,同时也可以将JSON数据转换回Java对象。这种转换过程非常方便,大大简化了...
Android使用Kotlin利用Gson解析多层嵌套Json数据
下面我们将讨论如何使用 Gson 解析复杂的 JSON 数据。 从给定的 JSON 数据可以看到,这是一个复杂的 JSON 对象,它包含多个层次的嵌套结构。为了解析这个 JSON 对象,我们需要使用 Gson 库提供的功能。 首先,我们...
1. 本地解析:可以从本地文件读取JSON数据,然后使用Gson进行解析。例如,可以创建一个`readJsonFile()`方法,读取文件内容并转换为JSON字符串,再进一步解析。 2. 网络解析:在网络请求中,通常会接收到JSON格式的...
JSON(JavaScript Object Notation)和Gson是Android开发中常用的数据序列化和反序列化工具,...以上就是关于“Android之json和gson数据解析最完整的代码例子”的详细介绍,希望对您在学习和使用JSON及Gson时有所帮助。
可以创建相应的Java类如`User`、`Friend`,然后使用GSON的`fromJson`方法解析。 5. Android HTTP请求:在Android中,我们可以使用HttpURLConnection、Volley、OkHttp或Retrofit等库进行网络请求,获取JSON数据。...
【Gson解析JSON数据】 Gson是Google提供的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它可以将任何Java对象转换为它的JSON表示形式,反之亦然。在处理JSON数据时,我们经常遇到两种常见的数据结构:...
本篇文章将详细介绍如何在Android应用中使用Gson库解析JSON数据,以便更好地理解这一关键知识点。 首先,我们要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...
这个“Gson解析JSON数据的入门级源码”应该包含了一些基础示例,帮助初学者理解如何使用Gson进行JSON操作。现在,我们将深入探讨Gson库的关键特性和使用方法。 **Gson库的引入** 首先,要使用Gson,你需要在项目中...
本文将详细介绍如何在Android中使用Gson来创建和解析JSON数据。 首先,你需要在项目中引入Gson库。如果你的项目使用的是Gradle构建系统,可以在`build.gradle`文件的dependencies块中添加以下依赖: ```groovy ...