Java之JSON操作(gson)

使用gson包操作JSON数据。

依赖包:gson-2.8.2.jar

<dependency>    <groupId>com.google.code.gson</groupId>    <artifactId>gson</artifactId>    <version>2.8.2</version></dependency>

代码如下:

  1 package json.gson;
  2
  3 import java.util.ArrayList;
  4 import java.util.List;
  5 import java.util.Map;
  6
  7 import com.google.gson.Gson;
  8 import com.google.gson.JsonArray;
  9 import com.google.gson.JsonElement;
 10 import com.google.gson.JsonParser;
 11 import com.google.gson.reflect.TypeToken;
 12
 13 /**
 14  * 使用gson来操作Json
 15  * 1.对象实体类,list,map,等转化成----->jsonString(进行数据传递)
 16  * 2.jsonString转化成----->对象实体类,list,map(解析返回的数据)
 17  * 3.我使用的是gson-2.2.2.jar
 18  *
 19  */
 20 public class JsonUtil {
 21
 22
 23     private static Gson gson = null;
 24
 25     static {
 26         if (gson == null) {
 27             gson = new Gson();
 28         }
 29     }
 30
 31
 32     /**
 33      * 将object对象转成json字符串(jsonString)
 34      * boject 可以是List,也可以是Bean(对象类型)
 35      *
 36      * @param object
 37      */
 38     public static String GsonString(Object object) {
 39         String gsonString = null;
 40         if (gson != null) {
 41             gsonString = gson.toJson(object);
 42         }
 43         return gsonString;
 44     }
 45
 46
 47     /**
 48      * 入参是json对象
 49      * 将gsonObjectString转成泛型bean(实体类)
 50      *
 51      * @param gsonString
 52      */
 53     public static <T> T GsonToBean(String gsonString, Class<T> cls) {
 54         T t = null;
 55         if (gson != null) {
 56             t = gson.fromJson(gsonString, cls);
 57         }
 58         return t;
 59     }
 60
 61     /**
 62      * 这里的入参是json数组类型的字符串
 63      * jsonArrayString转成list
 64      */
 65     public static <T> List<T> jsonArrayToList(String json, Class<T> cls) {
 66         Gson gson = new Gson();
 67         List<T> list = new ArrayList<T>();
 68         JsonArray array = new JsonParser().parse(json).getAsJsonArray();
 69         for (final JsonElement elem : array) {
 70             list.add(gson.fromJson(elem, cls));
 71         }
 72         return list;
 73     }
 74
 75
 76     /**
 77      * List对泛型没有要求
 78      * jsonString转成list中有map的
 79      */
 80     public static <T> List<Map<String, T>> GsonToListMap(String gsonString) {
 81         List list = null;
 82         if (gson != null) {
 83             list = gson.fromJson(gsonString,
 84                     new TypeToken<List>() {
 85                     }.getType());
 86         }
 87         return list;
 88     }
 89
 90     /**
 91      * 要求List中全部是Map
 92      * jsonString转成list中有map的
 93      */
 94     public static <T> List<Map<String, T>> GsonToListMaps(String gsonString) {
 95         List<Map<String, T>> list = null;
 96         if (gson != null) {
 97             list = gson.fromJson(gsonString,
 98                     new TypeToken<List<Map<String, T>>>() {
 99                     }.getType());
100         }
101         return list;
102     }
103
104
105     /**
106      * jsonString转成map的
107      */
108     public static <T> Map<String, T> GsonToMaps(String gsonString) {
109         Map<String, T> map = null;
110         if (gson != null) {
111             map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
112             }.getType());
113         }
114         return map;
115     }
116
117     /**
118      * map转jsonString,指定了Map类型
119      */
120     public static String MapToJson(Map<String, Object> map) {
121         String str = null;
122         if (gson != null) {
123             str = gson.toJson(map);
124         }
125         return str;
126     }
127
128 }

测试代码:

 1 package json.gson;
 2
 3 import bean.User;
 4
 5 public class TestGson {
 6
 7     private static User user = null;
 8
 9     static {
10         user = new User("tom", 25, "NO.1 street");
11     }
12
13     public static void main(String[] args) {
14         String jsonStr = JsonUtil.GsonString(user);
15         System.out.println(jsonStr);
16
17         String jsonStr2 = "{\"name\":\"tom\",\"age\":25,\"address\":\"NO.1 street\"}";
18         User user2 = JsonUtil.GsonToBean(jsonStr2, User.class);
19         System.out.println(user2);
20     }
21 }

运行结果:

{"name":"tom","age":25,"address":"NO.1 street"}
User[name=‘tom‘, age=25, address=‘NO.1 street‘]

原文地址:https://www.cnblogs.com/gongxr/p/8444183.html

时间: 2024-10-10 04:28:02

Java之JSON操作(gson)的相关文章

Java之JSON操作(Jackson)

Java to JSON: 1 package json.jackson; 2 3 import bean.User; 4 import com.fasterxml.jackson.databind.ObjectMapper; 5 6 import java.io.File; 7 import java.util.Map; 8 9 /** 10 * Jackson – Java to JSON 11 * 功能:JSON与Java对象.Map等类型转换,JSON文件的读写等 12 * 依赖包:ja

java后台JSON操作

将参数转为json格式字符串的两种方式:方式一:JSONObject jo = new JSONObject();jo.put("certNo", "522121198710114617");jo.put("certType", "IDENTITY_CARD");String jostr = jo.toJSONString(); 方式二:Map<String, Object> map2 = new HashMap&

js与java对json的操作

JSON呢,是现在大部分,并且主流的传递数据的方式. 今天讲一下javascript的java对json的操作 提到js,当下就有一个比较主流的插件,vue.js,这个插件程序员没用过也都听说过吧, 非常方便的一个js插件,像js对于json的操作比如说json的话直接可以点出来,像数据的话 data[0]需要给下标才能点出来, java呢处理json就比较复杂了 import org.json.JSON; 需要导一下包,对于已经toString的字符串 可以使用JSONObject obj =

Java和js操作json

Js中 Json字符串转json对象 //将json格式的字符串转为json对象 var t = JSON.parse('{"name":123}'); alert(t.name); json对象转json字符串 //json对象数组. //packJson 为对象数组 packJson = [ {"name":"nikita", "password":"1111"}, {"name":

java利用json-lib操作json

1.1.  下载json-lib.jar http://sourceforge.net/projects/json-lib/files/json-lib/ 1.2.  Java对象转换为json 1.2.1.  Map对象转换为json Map2Json.java package json; import java.util.HashMap; import java.util.Map; import net.sf.json.JSONArray; public class Map2Json { p

Android JSON、GSON、FastJson的封装与解析

声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种数据解析的DEMO都用到了下面这个Person类,贴出来: 1 public class Person { 2 private String name; 3 private int age; 4 private String address; 5 6 public Person() { 7 8 }

Java中json工具对比分析

Java中几个json工具分析 1, 环境 JDK1.6+IDE(IntelliJ IDEA)+windowsXP+GBK编码 2,分析对象 jackson1.8.2 http://jackson.codehaus.org/ gson1.7.1 http://code.google.com/p/google-gson/ jsob_lib2.4 http://json-lib.sourceforge.NET/ 3,使用实例          用两个bean进行测试,两个bean都嵌套有数组和对象,

通过Json和Gson,快速生成和解析json字符串

1,首先我们要先明白json与gson有什么区别 其实他们是完全不同的概念: json是一种数据格式,便于数据传输,存储,交换. gson则是一种组件库,就是通过Gson我们可以把java中的对象(gson.toJson()),转换成Json字符串,当然反过来也是可以的(gson.fromJson); 2,代码 首先我们需要JSon和Gson这两个jar包 package com.json.dome; import java.util.ArrayList;import java.util.Lis

现在通过json和gson来实现完成一个级联下拉列表框

现在通过json和gson来实现完成一个级联下拉列表框(例如:省市联动) 1.前台jsp页面: <select name="address.upLeverId" id="Townside1"> <span style="white-space:pre"> </span><option value="-1">请选择</option> <s:iterator val