您的位置:首页 > 其它

Gson用法2(用Map读取文件内容)

2015-07-02 11:03 316 查看
/**
tmp2.json文件的内容如下:
{
"logfile": {
"file1": "zhangsan.log",
"file2": "lisi.log"
},
"persons": {
"num1": {
"name": "张三",
"gender": false,
"age": 20
},
"num2": {
"name": "李四",
"gender": true,
"age": 25
}
}
}

*/
//-Person类----------------------------
package test1;

public class Person {
private String name;
private Boolean gender;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Boolean getGender() {
return gender;
}
public void setGender(Boolean gender) {
this.gender = gender;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}

}

//-Config类------------------------
package test1;
import java.util.Map;
public class Config {
private Map<String, String> logfile;//包装logfile
private Map<String, Person> persons;//包装Person,

public Map<String, String> getLogfile() {
return logfile;
}
public void setLogfile(Map<String, String> logfile) {
this.logfile = logfile;
}
public Map<String, Person> getPersons() {
return persons;
}
public void setPersons(Map<String, Person> persons) {
this.persons = persons;
}

}
//-MapGson类---------------------------------
package test1;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.Map;

import com.google.gson.Gson;

public class MapGson {

public static void main(String[] args) {
try {
String st = "C:\\temp\\tmp2.json";
BufferedReader br =
new BufferedReader(new InputStreamReader(new FileInputStream(st)));
Gson gson = new Gson();
//使用Gson来转换读取的文件内容br,存为Config类型
Config c = gson.fromJson(br, Config.class);

Map<String,String> f = c.getLogfile();
System.out.println(f.get("file1"));//结果:zhangsan.log

Map<String,Person> ps = c.getPersons();
System.out.println(ps.get("num2").getName());//结果:李四

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

}

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