一直都是用android自带的org.json.JSONObject来解析服务器发过来的json string,如果json是个List<Object>,下面是我以前的做法。
// 把JsonArray对象转换成List<WmsSpzl> protected List<WmsSpzl> loadGoodsList(JSONArray arr)throws JSONException { List<WmsSpzl> spList=new ArrayList<WmsSpzl>(); for (int i = 0; i < arr.length(); i++) { JSONObject a = (JSONObject) arr.get(i); WmsSpzl w = new WmsSpzl(); w.setId(a.getLong("id")); w.setDm(a.getString("dm")); w.setMc(a.getString("mc")); w.setGg(a.getString("gg")); spList.add(w); } return spList; }
你没看错,需要把所有的字段一个一个取出来再构建List。。。相当麻烦不说,如果字段名称写错还会报错,比java的要麻烦很多,每次这样写真的很蛋疼,本来打算自己写一个类似java的json工具类,可以直接把json 解析成对象或者List。一不小心发现了google已经有这个好东西了,用的时候直接引入一个jar包就行了。下面是实例,末尾会贴出jar包下载地址。
//Person类 public class Person { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
下面是把Person对象封装Json
Person p=new Person(); p.setId(111); p.setName("Albert"); Gson gson=new Gson(); String json=gson.toJson(p);
打印json值,输出为:{"id":111,"name":"Albert"},当然解析json如下
//json是Person的json 字符串 Person p=gson.fromJson(json, Person.class);
bean的解析就像上面写得很简单。
把List转换为json和上面Person转换一样,不再赘述
List的解析稍微有点儿变动:如下
List<Person> l=gson.fromJson(json, new TypeToken<List<Person>>() {}.getType());
如果对象中有Date类型时,需要设置pattern来解析或者转换为json:
Gson gson=new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
如此Date类型会按照设置的pattern解析或转换
转载请注明出处,本文唯一地址
http://zyq790321193.iteye.com/admin/blogs/1980256
gson.jar下载地址
http://google-gson.googlecode.com/files/google-gson-2.2.4-release.zip
相关推荐
在这个场景下,我们将深入探讨如何在Android中解析JSON数组,并结合PHP服务器进行数据交互。 首先,我们需要了解JSON的基本结构。JSON数组由方括号`[]`包围,其中包含一个或多个JSON对象。每个对象由花括号`{}`包裹...
6. **处理JSON数组**:如果值是JSON数组,可以使用`JSONArray`来解析。例如,解析`hobbies`数组: ```java JSONArray hobbiesArray = jsonObject.getJSONArray("hobbies"); for (int i = 0; i (); i++) { String...
4. 解析JSON数组 对于JSON数组,可以创建一个包含集合类型的Java类,例如: ```java public class PeopleList { private List<Person> people; // getters and setters... } ``` 解析JSON数组: ```java ...
在这个场景中,我们将探讨如何在Android Studio中解析JSON数组,并将获取的数据展示在ListView上。这个过程对于任何初学者来说都是一个重要的学习点,因为它涉及到网络数据获取、JSON解析以及UI展示。 首先,我们...
在安卓开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于服务器与客户端之间的数据...在实际项目中,还可以根据需求扩展`GsonUtil`类,例如添加处理JSON数组的方法或处理特殊情况的逻辑。
本篇将详细介绍如何在Android中读取和解析服务器返回的JSON数据。 首先,理解JSON的基本结构至关重要。JSON支持的数据类型包括String、Number、Boolean、Array和Object。例如,一个简单的JSON字符串表示为`"abc"`,...
2. 获取键值:使用`getString(key)`获取字符串,`getInt(key)`获取整数,`getDouble(key)`获取浮点数,`getBoolean(key)`获取布尔值,`getJSONArray(key)`获取JSON数组,`getJSONObject(key)`获取嵌套的JSON对象。...
总结,理解并熟练掌握JSON解析是Android开发者必备的技能之一,无论是在客户端解析服务器返回的数据,还是在服务器端处理客户端的请求,JSON都起着至关重要的作用。通过选择合适的库和遵循最佳实践,可以使你的JSON...
// 解析JSON数组 JSONArray jsonArray = jsonObject.getJSONArray("friends"); for (int i = 0; i (); i++) { String friendName = jsonArray.getString(i); } ``` 5. Volley库: 在网络请求中,Volley库...
本篇将详细讲解如何在Android中进行JSON的操作,包括读取JSON、读取JSON数组以及添加修改JSON。 一、读取JSON 1. JSON字符串到JSONObject 首先,你需要导入相关的JSON库,Android SDK已经内置了org.json库,可以...
本文将详细介绍如何在Android应用中使用Gson库来自动解析服务器返回的JSON数据。 首先,确保在项目中正确导入Gson库。如果你的项目是基于Gradle构建的,可以在app模块的build.gradle文件中添加依赖: ```groovy ...
这个资料包包含了一个关于Android解析JSON数据的PPT和源码,可以帮助开发者深入理解和实践Android中如何处理JSON数据。 首先,我们要理解JSON的基本结构。JSON由键值对组成,键用引号括起来,后跟冒号,值可以是...
3. 接收服务器响应:服务器处理请求后返回JSON格式的响应,Android应用接收并解析这个响应。 4. 解析JSON响应:使用Gson或org.json库解析JSON数据,将数据绑定到UI组件,或者保存到数据库中。 5. 示例代码中的...
1. JSON基本结构:JSON数据由键值对组成,键用引号包围,值可以是字符串、数字、数组、对象等。例如: ```json { "name": "John", "age": 30, "city": "New York" } ``` 2. Android中的JSON解析库: - `org.json...
- **数组解析**:JSON数组可以用`JSONArray`表示,通过`getJSONObject(int index)`获取特定索引的对象,或者用`getString(int index)`获取字符串等。 - **对象解析**:`JSONObject`用于解析JSON对象,通过`has()`...
该库提供了两个主要类:JSONObject用于表示JSON对象,JSONArray用于表示JSON数组。以下是如何使用这两个类构建JSON数据的例子: 1. 构建JSON对象: ```java import org.json.JSONObject; JSONObject jsonObject = ...
Android 解析 JSON 字符串 Android 解析 JSON 字符串是 Android 应用程序中非常常见的...Android 解析 JSON 字符串可以使用 JSONObject 和 JSONArray 对象来实现,分别用于解析普通形式和带有数组形式的 JSON 数据。
或解析JSON数组: ```java JSONArray jsonArray = new JSONArray(jsonData); for (int i = 0; i (); i++) { JSONObject obj = jsonArray.getJSONObject(i); // 解析对象属性 } ``` ### 3. 在线JSON解析 在线JSON...
4. **解析JSON数组**:对于包含多个元素的JSON数据,通常以数组形式存在。你可以通过`getJSONArray()`方法获取`JSONArray`,然后通过索引来访问每个元素: ```java JSONArray jsonArray = jsonObject.getJSONArray...
在示例中,创建了一个包含多个`User`对象的列表,并将其转换为JSON数组。 3. **HTTP响应设置**:通过`response.setContentType("text/html")`设置响应类型为HTML文本,然后通过`response.getWriter()`获取`...