ANDROID_MARS学习笔记_S02_015_Gson解析json串为对象集合

package com.example.s02_e12_json3;

import java.lang.reflect.Type;
import java.util.Iterator;
import java.util.LinkedList;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class MainActivity extends Activity {
    private Button button = null;
    private String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button)findViewById(R.id.buttonId);
        button.setOnClickListener(new ButtonListener());
    }

    private class ButtonListener implements OnClickListener{

        @Override
        public void onClick(View v) {
            JsonUtils jsonUtils = new JsonUtils();
            jsonUtils.getObjectsFromJson(jsonData);
        }

    }

    public class JsonUtils {
        public void getObjectsFromJson(String jsonData) {
            Type listType = new TypeToken<LinkedList<User>>(){}.getType();
            Gson gson = new Gson();
            LinkedList<User> users = gson.fromJson(jsonData, listType);
            for(Iterator it = users.iterator() ; it.hasNext() ; ) {
                User user = (User) it.next();
                System.out.println(user);
            }
        }
    }

    public class User {
        private String name;
        private int age;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        @Override
        public String toString() {
            return "User [name=" + name + ", age=" + age + "]";
        }
    }
}
时间: 2024-10-25 11:32:15

ANDROID_MARS学习笔记_S02_015_Gson解析json串为对象集合的相关文章

jquery学习笔记---each解析json数据

使用jQuery解析JSON数据 在上一篇的Struts2之ajax初析中,我们得到了comments对象的JSON数据,在本篇中,我们将使用jQuery进行数据解析. 我们先以解析上例中的comments对象的JSON数据为例,然后再小结jQuery中解析JSON数据的方法. 上例中得到的JSON数据如下,是一个嵌套JSON: {"comments":[{"content":"很不错嘛","id":1,"nickn

序列化后的json串与解析json串实体间的关系

一般用一个实体去解析一个json串通常会存在以下几种情况: 1.序列化成json的实体属性多于解析json串的实体属性. 2.解析json串的实体属性多于序列化成json的实体属性. 3.序列化成json串的实体类与解析json串的实体类名字不一致. 4.序列化成json串的实体的属性跟解析json串实体属性类型不一致,但名字一致. 5.是否任意一个实体都可以解析json串. 以下是实验的例子: 1.序列化成json的实体属性多于解析json串的实体属性. 这是序列化成json的实体类型. pu

C++ 解析json串

首先, C++ 解析json串,需要用到第三方库(json_vc71_libmtd.lib).然后,VS2010,创建项目json_read,配置项目属性.最后,拷贝下面的代码就可以看到效果了. #include "stdafx.h" #include "../json/include/json.h" int _tmain(int argc, _TCHAR* argv[]) { const char * str = "{\"machineCode

C++ Primer 学习笔记_14_标准模板库_bitset位集合容器

C++ Primer 学习笔记_14_标准模板库_bitset位集合容器 bitset容器是一个bit位元素的序列容器,每个元素只占一个bit位,取值为0或1,因而很节省内存空间.下图是一个bitset的存储示意图,它的10个元素只使用了两个字节的空间. 使用bitset需要声明头文件"#include <bitset>" 1.创建bitset对象 创建bitset对象时,必须要指定容器的大小.bitset对象的大小一经定义,就不能修改了.下面这条语句就定义了bitset对

Guava学习笔记: guava中的对象封装操作

Guava学习笔记: guava中的对象封装操作 转载:http://outofmemory.cn/java/guava/base/Objects 我们在开发中经常会需要比较两个对象是否相等,这时候我们需要考虑比较的两个对象是否为null,然后再调用equals方法来比较是否相等,google guava库的com.google.common.base.Objects类提供了一个静态方法equals可以避免我们自己做是否为空的判断,示例如下:         Object a = null;  

C++ Primer(第五版)学习笔记_7_标准模板库_multiset多重集合容器

C++ Primer(第五版)学习笔记_7_标准模板库_multiset多重集合容器 多重集合容器multiset与set一样,也是使用红黑树来组织元素数据的,唯一不用的是,multiset允许重复的元素键值插入.其结构示意图如下: 1.multiset元素插入 #include <iostream> #include <stdio.h> #include <vector> #include <set> #include <string> usi

Android学习笔记之Fast Json的使用

PS:最近这两天发现了Fast Json 感觉实在是强大.. 学习内容: 1.什么是Fast Json 2.如何使用Fast Json 3.Fast Json的相关原理 4.Fast Json的优势,以及为什么推荐使用Fast Json 1.Fast Json的相关介绍   说道Json想必我们都不陌生,数据传输的两种形式之一,另一种就是我们的xml了.不过现在更多的还是使用基于Json的格式来进行数据传输,Java的api接口为我们提供了相关的api接口用于对Json数据进行处理,如何将数据打

Android(java)学习笔记208:Json

1.Json 和 Xml       JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C.C++.C#.Java.JavaScript.Perl.Python等).这些特性使JSON成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成(网络传输速率). [  XML ] 优点::(1). 格式统一, 符合标准(2).

iOS学习 - 22 异步解析 JSON,使用 Model 存储,TableView 显示

Model 类: @interface ListModel : NSObject @property (nonatomic, copy)NSString *time; @property (nonatomic, copy)NSString *cname; @property (nonatomic, copy)NSString *summary; @property (nonatomic, copy)NSString *title; @property (nonatomic, copy)NSStr