package com.json02;
import java.io.StringReader;
import java.lang.reflect.Type;
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;
import com.google.gson.stream.JsonReader;
/*
* 解析json,对象形式
*/
public class Json02 extends Activity {
private Button btn;
private String json = "[{\"name\":\"zhangsan\",\"age\":20},{\"name\":\"lisi\",\"age\":30}]";
private String json2="{\"name\":\"wangermazi\",\"age\":21}";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn=(Button)findViewById(R.id.btn1);
btn.setOnClickListener(new btnClickListener());
}
private class btnClickListener implements OnClickListener{
public void onClick(View v) {
myJson m=new myJson();
m.JXJson(json);
//m.JXJson2(json2);
//m.JXJson3(json);
}
}
/**
* 解析json类
*/
private class myJson{
/**
* 在没有实体对象的情况下解析json字符串
* @param jsonData json格式数据
*/
public void JXJson(String jsonData) {
try {
JsonReader jsonread = new JsonReader(new StringReader(jsonData));
jsonread.beginArray();
while (jsonread.hasNext()) {
jsonread.beginObject();
while (jsonread.hasNext()) {
String key = jsonread.nextName();
String value = jsonread.nextString();
if (key.equals("name"))
System.out.println("name--->" + value);
else if (key.equals("age"))
System.out.println("age--->" + value);
}
jsonread.endObject();
}
jsonread.endArray();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
/**
* 有实体对象的情况下解析单个json数据
* @param jsonData json格式数据
*/
public void JXJson2(String jsonData){
Gson g=new Gson();
User u=g.fromJson(jsonData, User.class);
System.out.println("user.name--->"+u.getName());
System.out.println("user.age--->"+u.getAge());
}
/**
* 有实体对象的情况下解析json数据集合
* @param jsonData json格式数据
*/
public void JXJson3(String jsonData){
Type t=new TypeToken<LinkedList<User>>(){}.getType();
Gson g=new Gson();
LinkedList<User> list=g.fromJson(jsonData, t);
for(int i=0;i<list.size();i++){
User u=list.get(i);
System.out.println("list["+i+"].name--->"+u.getName());
System.out.println("list["+i+"].age--->"+u.getAge());
}
}
}
}
/**
* 与json数据相对应的实体类
*/
class User{
private String name;
private int age;
public String getName(){
return this.name;
}
public void setName(String Name){
this.name=Name;
}
public int getAge(){
return this.age;
}
public void setAge(int Age){
this.age=Age;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
android解析json格式数据.rar (34个子文件)
json02
AndroidManifest.xml 629B
res
layout
main.xml 415B
drawable-ldpi
icon.png 2KB
drawable-mdpi
icon.png 3KB
drawable-hdpi
icon.png 4KB
values
strings.xml 163B
proguard.cfg 1KB
src
com
json02
Json02.java 3KB
bin
classes
com
json02
User.class 720B
Json02$btnClickListener.class 1KB
Json02.class 1KB
BuildConfig.class 329B
R.class 475B
R$layout.class 370B
R$attr.class 316B
R$id.class 358B
R$string.class 403B
Json02$myJson$1.class 666B
Json02$myJson.class 3KB
R$drawable.class 376B
res
drawable-ldpi
icon.png 2KB
drawable-mdpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
jarlist.cache 119B
classes.dex 153KB
json02.apk 78KB
resources.ap_ 10KB
.classpath 438B
assets
project.properties 562B
.settings
org.eclipse.jdt.core.prefs 208B
libs
gson-1.7.1.jar 170KB
.project 842B
gen
com
json02
R.java 725B
BuildConfig.java 152B
共 34 条
- 1
fire_fire_fire
- 粉丝: 93
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页