您的位置:首页 > Web前端 > JavaScript

GSON解析JSON

2016-06-26 16:14 453 查看
使用谷歌的gson解析json

* 谷歌的gson.jar

*

* 总结:

* 1、Gson类对象中可以添加json文件的对象类型和数组类型

* 2、可以把json文件转换为java的对象(包括集合),或者java的对象(包括集合)转换为json格式的字符串

* 需要实现TypeToken泛型接口,调用getType()方法,并且给出需要转换的具体类型

*

* 注意:java对象转换为json格式的字符串时,如果该属性值为null值,那么在字符串中没有添加进去

* 附注:GsonBuilder类是一个Gson构造器,可以显示属性值为null的属性

*/

public class Gsonjson {

public static void main(String[] args) throws Exception {
/**
* 	1、Gson对象的使用
*/
//创建Gson对象
Gson gson=new Gson();

//java里面的对象转换为json格式的字符串
String json=gson.toJson(new Student(1001,"杨钰莹",98.9));
//java里面的List对象转换为json格式的字符串
String array=gson.toJson(JSONUtil.getListData());

//json格式的字符串转换为java对象(List集合对象)
//fromJson()方法
//参数1:json格式的字符串
//参数2:实现TypeToken泛型接口(匿名内部类),调用getType()方法,并且给出具体转换的类型
List<Student>list=gson.fromJson(array, new TypeToken<List<Student>>(){}.getType());

/*		for(Student student:list){//遍历集合
System.out.println(student);
}*/

//Student student=gson.fromJson(json, new TypeToken<Student>(){}.getType());

//解析本地的json文件
InputStream inputStream=new FileInputStream("student.json");
BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));

StringBuffer buffer=new StringBuffer();// 缓冲字符串
String json1=null;//接收每次读取的字符串
while((json1=reader.readLine())!=null){
buffer.append(json1.trim());//拼接到缓冲字符串,去掉空格
}

json1=buffer.toString();//把读取的字符数据赋值给字符串

//把json格式的字符串转换为java对象(List集合对象)
List<Student>list1=gson.fromJson(json1, new TypeToken<List<Student>>(){}.getType());

for(Student stu:list1){//遍历集合
System.out.println(stu);
}

/**
*    2、GsonBuilder构造器的使用
*/
System.out.println("=========================================================");
//方法链
//serializeNulls()方法,将null的属性显示出来
//create()方法,创建Gson对象
Gson gson2=new GsonBuilder().serializeNulls().create();
System.out.println("Gson添加的对象:"+gson.toJson(new Student()));
System.out.println("GsonBuilder添加的对象"+gson2.toJson(new Student()));

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