`
云上太阳
  • 浏览: 128775 次
  • 性别: 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的使用,主要是解析数组的功能,json在android和php服务器端数据的传递起非常重要的作用

    android 开发中用json解析客户端与服务器端的代码

    游戏开发中客户端与服务器端数据的传输, URL url = new URL(path); //创建一个Url对象 //得到打开的链接对象 HttpURLConnection conn = (HttpURLConnection)url.openConnection()... //从Json数组对象读取数据

    android客户端从服务器端获取json数据并解析的实现代码

    首先客户端从服务器端获取json数据 1、利用HttpUrlConnection 代码如下:/** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exception */ public static String readParse(String urlPath) ...

    Android json解析

    Android 简单的 json解析,在自己的tomcat服务器下放json文件,通过http获取并解析。

    android 解析json数据格式的方法

    json数据格式解析我自己分为两种; 一种是普通的,一种是带有数组形式的; 普通形式的:服务器端返回的json数据格式如下: 代码如下:{“userbean”:{“Uid”:”100196″,”Showname”:”\u75af\u72c2\u7684\u7334\...

    Android随手笔记44之JSON数据解析

     本文将主要介绍在Android开发中,如何在服务器端创建JSON数据,以及如何在Android客户端对JSON数据进行解析。 1.JSON数据结构  在JSON中有两种数据结构:对象和数组。 1.1对象  在JSON中,一个对象以“{”...

    fastjson-1.2.7.jar通用json文本解析实例(轻开IOS和安卓App服务器开发)

    if(ob instanceof JSONArray)//如果下级是json数组就调jsonArray2Bag { jsonArray2Bag((JSONArray)ob,prefix1,i); b0.set(key,new StringBuffer(prefix1).append(".").append(String.valueOf(i))....

    疯狂Android讲义源码

     6.3 数组(Array)资源 222  6.4 使用(Drawable)资源 225  6.4.1 图片资源 225  6.4.2 StateListDrawable资源 225  6.4.3 LayerDrawable资源 227  6.4.4 ShapeDrawable资源 229  6.4.5 ClipDrawable资源 ...

    疯狂Android讲义.part1

    19.2.1 使用JSON语法创建对象 643 19.2.2 使用JSON语法创建数组 644 19.2.3 Java的JSON支持 645 19.3 发送请求的工具类 646 19.4 用户登录 647 19.4.1 处理登录的Servlet 648 19.4.2 用户登录 649 19.5 查看流拍物品...

    JAVA上百实例源码以及开源项目

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    JAVA上百实例源码以及开源项目源代码

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,...

Global site tag (gtag.js) - Google Analytics