google的Gson使用

google的Gson封装的比较彻底,实现简单:

一、下载Gson的jar包:gson-2.2.4.jar

二、新建工程,导入jar包。

三、新建实体类:

package com.cn.entity;

public class User {

    private String name;

    private Integer age;

    private String address;

    public User(){

    }

    public User(String name, Integer age, String address) {
        super();
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

}

四、新建静态工具类实现Gson对象只实例化一次:

JsonToObject.java--->>>

package com.cn.util;

import com.google.gson.Gson;

public class JsonToObject {

    private static final Gson googleJson = new Gson();

    /**
     * 获取Gson常量,减少重复创建,在编译后就完成改变量初始化
     * @return
     */
    public static Gson getGoogleJson(){
        return googleJson;
    }

    /**
     * 直接获取
     * @param <T>
     * @param json
     * @param class1
     * @return
     */
    public static <T> Object jsonToObject(String json , Class<T> class1){
        return googleJson.fromJson(json, class1);
    }

}

ObjectToJsonUtil.java--->>>

package com.cn.util;

import com.google.gson.Gson;

public class ObjectToJsonUtil {

    private static final Gson googleJson = new Gson();

    /**
     * 获取Gson常量,减少重复创建,在编译后就完成改变量初始化
     * @return
     */
    public static Gson getGoogleJson(){
        return googleJson;
    }

    public static String objectToJson(Object object){
        return googleJson.toJson(object);
    }

}

五、建立测试类,进行测试:

package com.cn.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.cn.entity.User;
import com.cn.util.JsonToObject;
import com.cn.util.ObjectToJsonUtil;
import com.google.gson.reflect.TypeToken;

public class Test {

    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        //对象转json字符串
        User zhang = new User("zhang", 21, "深圳");
        System.out.println("张某某转为json字符串:"+ObjectToJsonUtil.objectToJson(zhang));

        //json转对象
        String json = "{‘name‘:‘wang‘,‘age‘:23,‘address‘:‘北京‘}";
        User wang = (User)JsonToObject.jsonToObject(json, User.class);
        System.out.println("json字符串转为王某某:"+"名字-"+wang.getName()+",年龄-"+wang.getAge()+",地址-"+wang.getAddress());

        //字符串数组转json
        String[] strs = {"中国","湖北","武汉"};
        System.out.println(ObjectToJsonUtil.objectToJson(strs));

        //list对象转json
        List<User> list = new ArrayList<User>();
        list.add(new User("张三", 21, "北京"));
        list.add(new User("李四", 22, "上海"));
        list.add(new User("王五", 23, "深圳"));
        System.out.println(ObjectToJsonUtil.objectToJson(list));

        //map对象转json
        Map<String, User> map = new HashMap<String, User>();
        map.put("第一名", new User("张三", 21, "北京"));
        map.put("第二名", new User("李四", 22, "上海"));
        map.put("第三名", new User("王五", 23, "深圳"));
        System.out.println(ObjectToJsonUtil.objectToJson(map));

        //json转list集合
        String jsonList = "[{‘name‘:‘zhang‘,‘age‘:21,‘address‘:‘北京‘},{‘name‘:‘wang‘,‘age‘:22,‘address‘:‘上海‘},{‘name‘:‘zhao‘,‘age‘:23,‘address‘:‘深圳‘}]";
        List<User> personList = JsonToObject.getGoogleJson().fromJson(jsonList, new TypeToken<List<User>>(){}.getType());
        System.out.println(personList.get(0).getName()+"---"+personList.get(1).getName()+"---"+personList.get(2).getName());

        //json转map集合
        String jsonMap = "{‘one‘:{‘name‘:‘zhang‘,‘age‘:21,‘address‘:‘北京‘},‘two‘:{‘name‘:‘wang‘,‘age‘:22,‘address‘:‘上海‘},‘three‘:{‘name‘:‘zhao‘,‘age‘:23,‘address‘:‘深圳‘}}";
        Map<String, User> personMap = JsonToObject.getGoogleJson().fromJson(jsonMap, new TypeToken<Map<String , User>>(){}.getType());
        System.out.println("第一名:"+personMap.get("one").getName()+"  第二名:"+personMap.get("two").getName()+"  第三名:"+personMap.get("three").getName());
    }
}

总结:主要使用Gson对象的toJson实现对象序列化成json字符串 和fromJson实现把json字符串反序列化成对象。在把json转成List和Map集合的时候

   使用TypeToken代理对象实现转换。

时间: 2024-10-30 23:48:54

google的Gson使用的相关文章

Json转换工具类(基于google的Gson和阿里的fastjson)

在项目之中我们经常会涉及到字符串和各种对象的转换,为此特地整理了一下常用的转换方法 一.基于com.google.code.gson封装的json转换工具类 1. 在pom.xml文件里面引入gson的依赖 <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.3</version> &

Invalid JDK version in profile &#39;doclint-java8-disable&#39;: Unbounded range: [1.8, for project com.google.code.gson:gson 解决办法

利用maven打包的时候遇到这个问题 在git上发现一个解决方案 问题解决 Invalid JDK version in profile 'doclint-java8-disable': Unbounded range: [1.8, for project com.google.code.gson:gson 解决办法 原文地址:https://www.cnblogs.com/macwhirr/p/10314661.html

使用Google的Gson实现对象和json字符串之间的转换

需要gson.jar 1.JsonUtil.java Java代码   package com.snail.json; import java.lang.reflect.Type; import com.google.gson.Gson; /** * Java对象和JSON字符串相互转化工具类 * @author penghuaiyi * @date 2013-08-10 */ public final class JsonUtil { private JsonUtil(){} /** * 对象

google 的 gson 序列化器使用

应用场景:1.  公司安全方面要求 对所有文件路径进行加密,好我们框架里之前加了统一父类,能获取到所有的出参和入参: 2. 由于文件路径都是string类型,因此想要用json序列化器,其实我暂且并不是很清楚哪个序列化api更好一些,因此就随机使用了google 直接上代码吧: 应用实例: // 公司的出参 这里object可能是任何类型,因此要做下具体判断,比如排除 String(不对其进行序列化) // 这里就省略了 Object response = new Object(); // 初始

Google中Gson的使用解析json数据-------学习篇

之前写过一篇Gson解析json数据的基本应用,这里不多说,直接上例子. 有兴趣的可以先阅读下之前那篇,这里附上链接: http://www.cnblogs.com/Ant-soldier/p/6322456.html // json跟set集合之间的转换        String str = "[{'name':'zhangsan','age':20},{'name':'lisi','age':33}]";        Gson gson = new Gson();      

[转]Json转换神器之Google Gson的使用

这几天,因为项目的需要,接触了Google的Gson库,发现这个东西很好用,遂记下简单的笔记,供以后参考.至于Gson是干什么的,有什么优点,请各位同学自行百度.话不多说,切入正题: 1. 下载Gson的jar包,拷贝到项目的lib文件夹中,并将其加入到buildPath中.使用maven的同学,直接在pom中加入以下依赖即可: ? 1 2 3 4 5 <dependency> <groupId>com.google.code.gson</groupId> <ar

Google Gson的使用方法,实现Json结构的相互转换

在Java开发中,有时需要保存一个数据结构成字符串,可能你会考虑用Json,但是当Json字符串转换成Java对象时,转换成的是JsonObject,并不是你想要的Class类型的对象,操作起来就很不是愉悦,下面说的就可以解决了这种问题. 首先,需要把Google的Gson的Jar包导入到项目中,这个导入包的简单步骤就不展示了,Gson的下载链接:http://download.csdn.net/detail/qxs965266509/8367275 现在,我先自定义一个Class类 [java

Could not find class com.google.gson.Gson

在Android开发中使用gson解析json字符串,出现异常:java.lang.classnotfoundexception:com.google.gson.Gson.解决方案如下: 这个异常的怪异之处在于,你可能已经将google的gson包导入了项目,但是为什么应用程序仍然报错,说找不到这个类? 2 原因在于此包只是导入了项目,但是并没有打包到应用程序中,所以应用运行的时候会找不到这个包. 3 解决方案为:右击项目->buildpath->config build path->o

nested exception is java.lang.NoClassDefFoundError: com/google/gson/Gson

gson的依赖如下: <dependency>    <groupId>com.google.code.gson</groupId>    <artifactId>gson</artifactId>    <version>1.7.1</version>  </dependency 但由于gson的jar没有自动部署到tomcat下,所以将依赖添加属性<scope>runtime</scope>