来自:http://www.imooc.com/learn/304
我们利用Google 提供的gson包生成如下格式的json数据:
{
"result": 1,
"personData": [
{
"name": "Tom Green",
"age": 22,
"url": "https://img.alicdn.com/imgextra/i2/2578685019/TB21XA7iXXXXXbxXpXXXXXXXXXX_!!2578685019.jpg",
"schoolInfo": [
{
"school_name": "Cambridge"
},
{
"school_name": "Oxford"
}
]
},
{
"name": "Bill Gates",
"age": 66,
"url": "https://img.alicdn.com/tps/TB1PebaLXXXXXX3XpXXXXXXXXXX-990-500.jpg",
"schoolInfo": [
{
"school_name": "北京大学"
},
{
"school_name": "清华大学"
}
]
}
]
}
Google gson地址:https://github.com/google/gson,将jar包下载后导入到java工程中即可。我们来分析一下上述json数据,包括两个元素,第一个是result,int型数据,第二个元素是personData,是一个对象(假设是Person对象)的集合,其中这个Person对象又包含了一个schoolInfo对象的集合。每个schoolInfo对象中只包含了一个school_name属性。下面新建一个Java工程进行上述json数据的生成。
1 SchoolInfo.java
package www.imooc.com;
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;
}
}
Person.java
package www.imooc.com;
import java.util.List;
public class Person {
private String name;
private int age;
private String url;
private List<SchoolInfo> schoolInfo;//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;
}
}
Result.java
package www.imooc.com;
import java.util.List;
/*
* Result包括一个int类型数据,一个Person类对象的集合
* */
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;
}
}
2 新建TestJson.java,生成json
package www.imooc.com;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
public class TestJson {
public static void main(String[] args) {
//设置result的数据,包括一个int数据和一个Person对象的集合
Result result = new Result();
result.setResult(1);
List<Person> listPersons = new ArrayList<Person>();
//设置result类中的第一个Person对象,包括name,age,url和一个SchoolInfo对象的集合
Person person1 = new Person();
person1.setName("Tom Green");
person1.setAge(22);
person1.setUrl("https://img.alicdn.com/imgextra/i2/2578685019/TB21XA7iXXXXXbxXpXXXXXXXXXX_!!2578685019.jpg");
//设置Person类中的SchoolInfo,包括一个school_name
List<SchoolInfo> listSchoolInfo1 = new ArrayList<SchoolInfo>();
SchoolInfo schoolInfo1 = new SchoolInfo();
schoolInfo1.setSchool_name("Cambridge");
SchoolInfo schoolInfo2 = new SchoolInfo();
schoolInfo2.setSchool_name("Oxford");
listSchoolInfo1.add(schoolInfo1);
listSchoolInfo1.add(schoolInfo2);
person1.setSchoolInfo(listSchoolInfo1);//将SchoolInfo的对象集合添加到Person中
//设置result类中的第二个Person对象,包括name,age,url和一个SchoolInfo对象的集合
Person person2 = new Person();
person2.setName("Bill Gates");
person2.setAge(66);
person2.setUrl("https://img.alicdn.com/tps/TB1PebaLXXXXXX3XpXXXXXXXXXX-990-500.jpg");
//设置Person类中的SchoolInfo,包括一个school_name
List<SchoolInfo> listSchoolInfo2 = new ArrayList<SchoolInfo>();
SchoolInfo schoolInfo3 = new SchoolInfo();
schoolInfo3.setSchool_name("北京大学");
SchoolInfo schoolInfo4 = new SchoolInfo();
schoolInfo4.setSchool_name("清华大学");
listSchoolInfo2.add(schoolInfo3);
listSchoolInfo2.add(schoolInfo4);
person2.setSchoolInfo(listSchoolInfo2);//将SchoolInfo的对象集合添加到Person中
listPersons.add(person1);//将Person对象的集合添加到Result中
listPersons.add(person2);//将Person对象的集合添加到Result中
result.setPersonData(listPersons);
Gson gson = new Gson();
System.out.println(gson.toJson(result));//将上述设置的代码转为json
}
}