您的位置:首页 > 其它

Gson用法1

2015-07-01 17:09 344 查看
//Person类
package Test;

public class Person {
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;
}

public String toString(){//打印输出用
return name+":"+age;
}

}

//-测试1-读取简单文件--------------------------
package Test;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;

public class TestGson {

public static void main(String[] args) {
try {
FileInputStream f= new FileInputStream("C:\\temp\\tmp.json");
//也可用单个正斜杠/代替\\。tmp.json的内容为:"name":"zhangsan","age":20}
InputStreamReader r = new InputStreamReader(f,"UTF-8");
BufferedReader b = new BufferedReader(r);

Gson gson = new Gson();
Person p= gson.fromJson(b, Person.class);
System.out.println(p.getName()+",,,"+p.getAge());

} catch (Exception e) {
e.printStackTrace();
}

}

}
//-测试2-读取集合形式的文件--------------------------
//tmp1.json内容 :[{"name":"zhangsan","age":20},{"name":"lisi","age":25}]
package Test;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.util.List;

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

public class TestGson2 {

public static void main(String[] args) {

// tmp1.json内容 :[{"name":"zhangsan","age":20},{"name":"lisi","age":25}]
BufferedReader b;
try {
b = new BufferedReader(new InputStreamReader(new FileInputStream(
"C:\\temp\\tmp1.json")));

Gson gson = new Gson();
//TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。
List<Person> ps = gson.fromJson(b, new TypeToken<List<Person>>() {
}.getType());

for (int i = 0; i < ps.size(); i++) {
Person p = ps.get(i);
System.out.println(p.getName()+",,,"+p.getAge());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}

}

}

//-测试3-自动生成集合及互相转换--------------------------
package Test;

import java.util.ArrayList;
import java.util.List;

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

public class TestGson1 {

public static void main(String[] args) {
Gson gson = new Gson();
List<Person> persons = new ArrayList<Person>();//生成Person的list
for(int i=0;i<3;i++){
Person p = new Person();
p.setName("name" + i);
p.setAge(i*2);
persons.add(p);
}
String str = gson.toJson(persons);//把Person的集合转为Gson
System.out.println(str);
//运行结果:[{"name":"name0","age":0},{"name":"name1","age":2},{"name":"name2","age":4}]

//Gson转换为Person集合
//TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。
List<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());

for(int i=0;i<ps.size();i++){
Person p = ps.get(i);
System.out.print("   " + p.toString());
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: