java gson 读取和载入

原文链接: java gson 读取和载入

需要下载并引入相应的jar包

http://mvnrepository.com/artifact/com.google.code.gson/gson

Gson 的 节点对象:

JsonElement : 所有的节点 都是 JsonElement 对象.

JsonPrimitive : 基本的 数据类型的 节点 对象, JsonElement 的子类.

JsonNull : 代表 空节点 对象,即 有 key,value 为空,JsonElement 的子类.

JsonObject : 对象 数据类型的 节点 对象, JsonElement 的 子类.

JsonArray : 数组 数据类型的 节点 对象, JsonElement 的 子类.

普通对象的读取和载入

1import com.google.gson.Gson; 2import com.google.gson.JsonObject; 3import com.google.gson.JsonParser; 4import com.model.Stu; 5 6public class Main { 7 8 public static void main(String[] args) { 9 Stu s = new Stu("root", 12); 10 11 // 实例化对象 12 Gson gson = new Gson(); 13 14 // 对象转json 字符串 15 String jsonStr = gson.toJson(s); 16 // {"name":"root","age":12} 17 System.out.println(jsonStr); 18 19 // json 字符串转jsonObject 该格式类似js中的对象 20 // 可以使用get来获取对象属性的信息 21 JsonObject jsonObject = new JsonParser().parse(jsonStr).getAsJsonObject(); 22 23 System.out.println(jsonObject); // {"name":"root","age":12} 24 25 System.out.println(jsonObject.get("age")); // 12 26 27 // 将json转为 java 对象 28 Stu s2 = (Stu) gson.fromJson(jsonStr, Stu.class); 29 System.out.println(s2.getName()); // root 30 } 31}

数组的读取和载入必须使用 getAsJsonArray 的方式获取数组对象,否则报错

1import com.google.gson.*; 2import com.model.Stu; 3 4import java.util.ArrayList; 5import java.util.List; 6 7public class Main { 8 9 public static void main(String[] args) { 10 11 List<Stu> stus = new ArrayList<>(); 12 stus.add(new Stu("root1", 11)); 13 stus.add(new Stu("root2", 12)); 14 stus.add(new Stu("root3", 13)); 15 16 // 实例化对象 17 Gson gson = new Gson(); 18 19 // 对象转json 字符串 20 String jsonStr = gson.toJson(stus); 21 22 //[{"name":"root1","age":11},{"name":"root2","age":12},{"name":"root3","age":13}] 23 System.out.println(jsonStr); 24 25 // json 字符串转jsonObject 该格式类似js中的对象 26 // 可以使用get来获取对象中的第几个元素 27 // {"name":"root2","age":12} 28 JsonArray jsonArray = new JsonParser().parse(jsonStr).getAsJsonArray(); 29 30 System.out.println(jsonArray.get(1)); 31 32 // 遍历操作 33 for (JsonElement e : jsonArray) 34 System.out.println(e); 35 } 36}

测试类

1package com.model; 2 3public class Stu { 4 String name; 5 int age; 6 7 public Stu(String name, int age) { 8 this.name = name; 9 this.age = age; 10 } 11 12 public String getName() { 13 return name; 14 } 15 16 public void setName(String name) { 17 this.name = name; 18 } 19 20 public int getAge() { 21 return age; 22 } 23 24 public void setAge(int age) { 25 this.age = age; 26 } 27}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )