首先我们需要导入gson的jar包,因为gson解析方法不是java官方的而是谷歌提供的。
一.把json数据转成java对象
首先因为已经手动导入了jar包,现在只需创建解析器对象,当然首先得有一个json类型的文件地址,和文件输出流
第二步调用解析器的fromJson()方法返回一个对象类型
//要解析的json文件地址
File f=new File(“C:\\Users\\Shine’lon\\IdeaProjects\\suanfa\\stus2.json”);
FileReader reader=new FileReader(f);
创建gson解析器对象
Gson gson=new Gson();
Student student= gson.fromJson(reader, Student.class);
System.out.println(student);
二.把java对象转成json数据
首先跟上面一样也是先创建解析器对象
然后给对象设置属性,最后调用解析器的tojson()方法返回一个字符串
//创建gson解析器对象
Gson gson=new Gson();
//java对象转成json格式
Student stu2=new Student();
stu2.setNum(123);
stu2.setName(“左2”);
stu2.setSex(‘男’);
stu2.setAge(12);
// //创建gson解析器对象
String msg= gson.toJson(stu2);
System.out.println(msg);
三.把json数组对象转成java数组
首先还是创建解析器对象然后创一个list数组 还是使用解析器的frmo()
然后在增强型for循环遍历list集合 在sout里面通过调用属性的名字来打印
Gson gson=new Gson();
// //将json数组数据转换成java数组对象
ArrayList list= gson.fromJson(reader, ArrayList.class);
for (LinkedTreeMap stu:list){
System.out.println(stu.get(“num”));
System.out.println(stu.get(“name”));
System.out.println(stu.get(“age”));
System.out.println(stu.get(“sex”));
}
四.把java数组 转成json数组对象
首先还是创建解析器,然后创建一个list集合并赋属性然后直接tojson()方法返回一个字符串然后直接打印即可
Gson gson=new Gson();//创建gson解析器
ArrayList list=new ArrayList<>();
for(int i=0;i<5;i++){
Student s=new Student();s.setNum((100+i));s.setName(\"名字\"+i);s.setAge(20+i);s.setSex(i%2==0?\'男\':\'女\');list.add(s);}String msg= gson.toJson(list);System.out.println(msg);