`
云上太阳
  • 浏览: 131670 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android 解析服务器json对象,数组

阅读更多

一直都是用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

 

分享到:
评论

相关推荐

    JSON解析数组

    在这个场景下,我们将深入探讨如何在Android中解析JSON数组,并结合PHP服务器进行数据交互。 首先,我们需要了解JSON的基本结构。JSON数组由方括号`[]`包围,其中包含一个或多个JSON对象。每个对象由花括号`{}`包裹...

    Android Studio解析JSON对象

    6. **处理JSON数组**:如果值是JSON数组,可以使用`JSONArray`来解析。例如,解析`hobbies`数组: ```java JSONArray hobbiesArray = jsonObject.getJSONArray("hobbies"); for (int i = 0; i (); i++) { String...

    Android_JSON数据解析

    4. 解析JSON数组 对于JSON数组,可以创建一个包含集合类型的Java类,例如: ```java public class PeopleList { private List&lt;Person&gt; people; // getters and setters... } ``` 解析JSON数组: ```java ...

    Android Studio解析JSON数组

    在这个场景中,我们将探讨如何在Android Studio中解析JSON数组,并将获取的数据展示在ListView上。这个过程对于任何初学者来说都是一个重要的学习点,因为它涉及到网络数据获取、JSON解析以及UI展示。 首先,我们...

    安卓 JSON实现对象和数组的相互转换

    在安卓开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于服务器与客户端之间的数据...在实际项目中,还可以根据需求扩展`GsonUtil`类,例如添加处理JSON数组的方法或处理特殊情况的逻辑。

    android读取并解析服务器json

    本篇将详细介绍如何在Android中读取和解析服务器返回的JSON数据。 首先,理解JSON的基本结构至关重要。JSON支持的数据类型包括String、Number、Boolean、Array和Object。例如,一个简单的JSON字符串表示为`"abc"`,...

    android解析Json数据

    2. 获取键值:使用`getString(key)`获取字符串,`getInt(key)`获取整数,`getDouble(key)`获取浮点数,`getBoolean(key)`获取布尔值,`getJSONArray(key)`获取JSON数组,`getJSONObject(key)`获取嵌套的JSON对象。...

    android json解析(包含服务器端,客户端)

    总结,理解并熟练掌握JSON解析是Android开发者必备的技能之一,无论是在客户端解析服务器返回的数据,还是在服务器端处理客户端的请求,JSON都起着至关重要的作用。通过选择合适的库和遵循最佳实践,可以使你的JSON...

    安卓Android源码——安卓Android 解析json_dome.zip

    // 解析JSON数组 JSONArray jsonArray = jsonObject.getJSONArray("friends"); for (int i = 0; i (); i++) { String friendName = jsonArray.getString(i); } ``` 5. Volley库: 在网络请求中,Volley库...

    android操作json

    本篇将详细讲解如何在Android中进行JSON的操作,包括读取JSON、读取JSON数组以及添加修改JSON。 一、读取JSON 1. JSON字符串到JSONObject 首先,你需要导入相关的JSON库,Android SDK已经内置了org.json库,可以...

    Android通过gson自动解析服务器返回的json数据

    本文将详细介绍如何在Android应用中使用Gson库来自动解析服务器返回的JSON数据。 首先,确保在项目中正确导入Gson库。如果你的项目是基于Gradle构建的,可以在app模块的build.gradle文件中添加依赖: ```groovy ...

    Android解析Json数据的PPT和源码

    这个资料包包含了一个关于Android解析JSON数据的PPT和源码,可以帮助开发者深入理解和实践Android中如何处理JSON数据。 首先,我们要理解JSON的基本结构。JSON由键值对组成,键用引号括起来,后跟冒号,值可以是...

    android demo,json数据的处理,json字符串的发送和解析。

    3. 接收服务器响应:服务器处理请求后返回JSON格式的响应,Android应用接收并解析这个响应。 4. 解析JSON响应:使用Gson或org.json库解析JSON数据,将数据绑定到UI组件,或者保存到数据库中。 5. 示例代码中的...

    android JSON解析放入ListView

    1. JSON基本结构:JSON数据由键值对组成,键用引号包围,值可以是字符串、数字、数组、对象等。例如: ```json { "name": "John", "age": 30, "city": "New York" } ``` 2. Android中的JSON解析库: - `org.json...

    AndroidJsonParsing:Json解析(字符串,数组,对象,嵌套对象和数组,图像),RecycleView,CardView,Volley

    - **数组解析**:JSON数组可以用`JSONArray`表示,通过`getJSONObject(int index)`获取特定索引的对象,或者用`getString(int index)`获取字符串等。 - **对象解析**:`JSONObject`用于解析JSON对象,通过`has()`...

    android之JSON数据的构建

    该库提供了两个主要类:JSONObject用于表示JSON对象,JSONArray用于表示JSON数组。以下是如何使用这两个类构建JSON数据的例子: 1. 构建JSON对象: ```java import org.json.JSONObject; JSONObject jsonObject = ...

    android解析JSON字符串

    Android 解析 JSON 字符串 Android 解析 JSON 字符串是 Android 应用程序中非常常见的...Android 解析 JSON 字符串可以使用 JSONObject 和 JSONArray 对象来实现,分别用于解析普通形式和带有数组形式的 JSON 数据。

    Android 安卓 json解析

    或解析JSON数组: ```java JSONArray jsonArray = new JSONArray(jsonData); for (int i = 0; i (); i++) { JSONObject obj = jsonArray.getJSONObject(i); // 解析对象属性 } ``` ### 3. 在线JSON解析 在线JSON...

    安卓Android源码——解析json_dome.zip

    4. **解析JSON数组**:对于包含多个元素的JSON数据,通常以数组形式存在。你可以通过`getJSONArray()`方法获取`JSONArray`,然后通过索引来访问每个元素: ```java JSONArray jsonArray = jsonObject.getJSONArray...

    Android Http (Json) 服务器端和客户端通信

    在示例中,创建了一个包含多个`User`对象的列表,并将其转换为JSON数组。 3. **HTTP响应设置**:通过`response.setContentType("text/html")`设置响应类型为HTML文本,然后通过`response.getWriter()`获取`...

Global site tag (gtag.js) - Google Analytics