Google的JSon——GSON生成JSon数据

对于JSon数据的解析,android内部有提供相应的方法,但是Google提供的JSon解析包GSon使用起来也比较简便,下面介绍一下这个包的解析方法:

1.首先我们来看一下JSon的数据封装:

{"result":1,
"personData":[{"name":"nate","age":12,"url":"http://www.baidu.com",
"schoolInfo":[{"school_name":"清华"},{"school_name":"北大"}]},
{"name":"jack","age":12,"url":"http://www.sina.com",
"schoolInfo":[{"school_name":"aaa"},{"school_name":"bbb"}]}]}

2.需要生成这个JSon文件也很简单,首先用类来封装这些数据,提供get和set方法即可,如果是数据集合,那么久用List来封装,还要注意的是变量名是和JSon数据的键值对应的:

import java.util.List;


public class Person {
	private String name;
	private int age;
	private String url;
	private List<SchoolInfo> schoolInfo;
	
	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;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public List<SchoolInfo> getSchoolInfo() {
		return schoolInfo;
	}
	public void setSchoolInfo(List<SchoolInfo> schoolInfo) {
		this.schoolInfo = schoolInfo;
	}
	
	
}

public class SchoolInfo {
	
	private String school_name;

	public String getSchool_name() {
		return school_name;
	}

	public void setSchool_name(String school_name) {
		this.school_name = school_name;
	}
	
}

import java.util.List;


public class Result {
	private int result;
	private List<Person> personData;
	public int getResult() {
		return result;
	}
	public void setResult(int result) {
		this.result = result;
	}
	public List<Person> getPersonData() {
		return personData;
	}
	public void setPersonData(List<Person> personData) {
		this.personData = personData;
	}
	
	
}
接下来就可以使用gson包提供的Gson类进行import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;


public class TestJson {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Result result = new Result();
        result.setResult(1);
        List<Person> list = new ArrayList<Person>();
        result.setPersonData(list);
        Person person1 = new Person();
        person1.setName("nate");
        person1.setAge(12);
        person1.setUrl("http://www.baidu.com");
        List<SchoolInfo> schools = new ArrayList<SchoolInfo>();
        SchoolInfo schoolInfo1 = new SchoolInfo();
        schoolInfo1.setSchool_name("清华");
        SchoolInfo schoolInfo2 = new SchoolInfo();
        schoolInfo2.setSchool_name("北大");
        schools.add(schoolInfo1);
        schools.add(schoolInfo2);
        person1.setSchoolInfo(schools);
        list.add(person1);
        
        Person person2 = new Person();
        person2.setName("jack");
        person2.setAge(12);
        person2.setUrl("http://www.sina.com");
        List<SchoolInfo> schools1 = new ArrayList<SchoolInfo>();
        SchoolInfo schoolInfo3 = new SchoolInfo();
        schoolInfo3.setSchool_name("aaa");
        SchoolInfo schoolInfo4 = new SchoolInfo();
        schoolInfo4.setSchool_name("bbb");
        schools1.add(schoolInfo3);
        schools1.add(schoolInfo4);
        person2.setSchoolInfo(schools1);
        list.add(person2);
        
        Gson gson = new Gson();
        System.out.println(gson.toJson(result));
    }

}

gson下载链接
http://yunpan.cn/c3whd59gPps3Q  访问密码 d317

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值