Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 489|回复: 0

开发交流:Google-Gson

[复制链接]

该用户从未签到

发表于 2011-10-24 09:56:45 | 显示全部楼层 |阅读模式
Gson源于Google
Gson这个java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。
Gson目标
      1、提供简单的toJson()和fromJson()方法的java对象转换为JSON,反之亦然
      2、允许预先存在不可改变的对象被转换为和从JSON
      3、广泛支持的java泛型
      4、允许自定义对象的意见
      5、支持任意复杂的对象(深层次结果和继承泛型类型的广泛使用)
一、声明要进行json输入/输出的对象
package com.zhl.gson;
import com.google.gson.annotations.Expose;
public class User {
      @Expose
      private Long id;
      
      @Expose
      private String name;
      
      @Expose
      private User next;
      public Long getId() {
           return id;
      }
      public void setId(Long id) {
           this.id = id;
      }
      public String getName() {
           return name;
      }
      public void setName(String name) {
           this.name = name;
      }
      public User getNext() {
           return next;
      }
      public void setNext(User next) {
           this.next = next;
      }
}
二、关于对象转换为json、或者json转换为对象
package com.zhl.gson;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class Test {
      public static void main(String[] args) {
           User user = new User();
           user.setId(1001L);
           user.setName("zhenlging");
           User next = new User();
           next.setId(1002L);
           next.setName("yangyang");
           user.setNext(next);
           
           GsonBuilder builder = new GsonBuilder();
           //不转换没有@Expose注解的字段
           builder.excludeFieldsWithoutExposeAnnotation();
           Gson gson = builder.create();
           
           //将对象转换为JSON字符串
           String sUserString = gson.toJson(user);
           System.out.println(sUserString);
           
           User user2 = gson.fromJson(sUserString, User.class);
           System.out.println("USER_ID: " + user2.getId() + "    USER_NAME:" + user2.getNext().getName());
           
      }
      
}
三、集合转换为json或者json转换为集合
      package com.zhl.gson;
import java.util.HashMap;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
public class MapTest {
  public static void main(String[] args) {
      
        User user1 = new User();
        user1.setId(1001L);
        user1.setName("zhengling");
        User user2 = new User();
        user2.setId(1002L);
        user2.setName("yangyang");
        Map<String, User> userMap = new HashMap<String,User>();
        userMap.put("user1", user1);
        userMap.put("user2", user2);
        
        GsonBuilder builder = new GsonBuilder();
        Gson gson = builder.create();
        String sUserMap = gson.toJson(userMap, new TypeToken<Map<String,User>>(){}.getType());
        System.out.println(sUserMap);
        
        //创建Type,Type属于java.lang.reflect.Type
        //Type type = new TypeToken<Map<String, User>>(){}.getType();
      
        Map<String,User> userMap2 = gson.fromJson(sUserMap, new TypeToken<Map<String, User>>() {}.getType());
        System.out.println(userMap2.get("user1").getName());
}
}
此处使用的Gson是gson-1.4.jar
Gson的jar下载地址:http://code.google.com/p/google-gson/downloads/list
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 01:27 , Processed in 0.368133 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表