Gson是google推出的一个用于在java平台解析json的包
地址:https://code.google.com/p/google-gson/
一,将java对象转换成json
首先定义一个简单的类
class ClassDemo {
static Set<ClassDemo> DemoSet;
String name;
long lastModify;
String hashcode;
public ClassDemo(String name, long lastModify){
this.name = name;
this.lastModify = lastModify;
//this.hashcode = "0";
}
public void sop(){
System.out.println("Name = " + name + " " + "LastModefy = " + lastModify);
}
}
然后创建HashMap存对象,将Map使用gson.toJson转换成Json信息,存入文件;
从文件读取,使用gson.fromJson将json信息转换成java对象。
public class Test {
public static void main(String[] args){
Gson gson = new Gson();
ClassDemo.DemoSet = new HashSet<ClassDemo>();
ClassDemo Demo1 = new ClassDemo("Demo1",100);
ClassDemo Demo2 = new ClassDemo("Demo2",200);
ClassDemo.DemoSet.add(Demo1);
ClassDemo.DemoSet.add(Demo2);
//System.out.println(gson.toJson(ClassDemo.DemoSet));
//将gson存入文件
String s = gson.toJson(ClassDemo.DemoSet);//将java对象转换成gson
File localFileInfo = new File("D:\\GsonTest.txt");//创建文件用于存储json信息
if(!localFileInfo.canExecute()){
try{
localFileInfo.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
}
try{
FileWriter f = new FileWriter(localFileInfo);
f.write(s);
f.close();
}catch(IOException ea){
ea.printStackTrace();
}
//将gson从文件中读取
Set<ClassDemo> DemoSet2 = new HashSet<ClassDemo>();
Gson gson2 = new Gson();
try{
FileReader fr = new FileReader(localFileInfo);
DemoSet2 = gson2.fromJson(fr,new TypeToken<Set<ClassDemo>>(){}.getType());//将json转换成java对象
fr.close();
}catch(IOException a){
a.printStackTrace();
}
Iterator<ClassDemo> Cl = DemoSet2.iterator();
while(Cl.hasNext()){
Cl.next().sop();
}
}
}