- 浏览: 7944599 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
gson是来自google的十分不错的json转换器,转换起来十分方便,今天小结下其中的一些用法:
1) 最基本的对象和json相互转换
POJO:
相互转换的代码:
输出如下:
toJson ---
Original Java object : ModelObject [name=myname, val=12, status=true, f=2.3]
Converted JSON string is : {"name":"myname","val":12,"status":true,"f":2.3}
fromJson----
Original JSON string is : {"name":"myname","val":12,"status":true,"f":2.3}
Converted Java object : ModelObject [name=myname, val=12, status=true, f=2.3]
2) 针对泛型
先看一个泛型的例子定义
然后转换方法如下:
Gson gson = new Gson();
System.out.println("A generic object demo");
// a generified object
GenericModel<Integer> model = new GenericModel<>(12);
// converting to json representation
String json = gson.toJson(model);
System.out.println("json representation :" + json);
// converting back to object
Type collectionType = new TypeToken<GenericModel<Integer>>() {
}.getType();
GenericModel<Integer> modelObj =
gson.fromJson(json, collectionType);
System.out.println("converted object representation: " + modelObj);
System.out.println("\nA object from collection framework\n");
// for collection framework objects
List<String> listOfString = new ArrayList<>();
listOfString.add("ajduke");
listOfString.add("ajduchess");
// conversion to json
String jsonStr = gson.toJson(listOfString);
System.out.println("json representation :" + jsonStr);
Type collectionType2 = new TypeToken<List<String>>() {
}.getType();
List<String> listObj = gson.fromJson(jsonStr, collectionType2);
System.out.println("converted object representation: " + listObj);
输出:
A generic object demo
json representation :{"value":12}
converted object representation: Model2 [value=12]
A object from collection framework
json representation :["ajduke","ajduchess"]
converted object representation: [ajduke, ajduchess]
也就是说,GSON把json转换为JAVA泛型对象的时候,要先定义好
Type collectionType = new TypeToken<GenericModel<Integer>>() {
}.getType()
告诉到底用什么类型,然后再用fromjson方法
3) 使用transient指定不需要转换为json的属性
则转换程序:
则输出的信息中,就不会转换val了.
4) 也可以使用注解,指定哪些是要暴露转换的属性,如:
但这个时候要用
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation()
.create();
BusinessSystem bus = (BusinessSystem) (gson.fromJson(data,
BusinessSystem.class));
这样类似的方式转换;
1) 最基本的对象和json相互转换
POJO:
public class ModelObject { String name; int val; boolean status; double f; public ModelObject(String name, int val, boolean status, double f) { super(); this.name = name; this.val = val; this.status = status; this.f = f; } @Override public String toString() { return "ModelObject [name=" + name + ", val=" + val + ", status=" + status + ", f=" + f + "]"; }
相互转换的代码:
final Gson gson = new Gson(); // original object instantiation ModelObject modelObject = new ModelObject("myname", 12, true, 2.3); System.out.println("toJson ---"); System.out.println("Original Java object : " + modelObject); // converting an object to json object String json = gson.toJson(modelObject); System.out.println("Converted JSON string is : " + json); System.out.println("fromJson----"); // getting object from json representation System.out.println("Original JSON string is : " + json); // converting json to object ModelObject modelObject1 = gson.fromJson(json, ModelObject.class); System.out.println("Converted Java object : " + modelObject1);
输出如下:
toJson ---
Original Java object : ModelObject [name=myname, val=12, status=true, f=2.3]
Converted JSON string is : {"name":"myname","val":12,"status":true,"f":2.3}
fromJson----
Original JSON string is : {"name":"myname","val":12,"status":true,"f":2.3}
Converted Java object : ModelObject [name=myname, val=12, status=true, f=2.3]
2) 针对泛型
先看一个泛型的例子定义
public class GenericModel<T> { T value; public GenericModel(T value) { super(); this.value = value; } @Override public String toString() { return "Model2 [value=" + value + "]"; } }
然后转换方法如下:
Gson gson = new Gson();
System.out.println("A generic object demo");
// a generified object
GenericModel<Integer> model = new GenericModel<>(12);
// converting to json representation
String json = gson.toJson(model);
System.out.println("json representation :" + json);
// converting back to object
Type collectionType = new TypeToken<GenericModel<Integer>>() {
}.getType();
GenericModel<Integer> modelObj =
gson.fromJson(json, collectionType);
System.out.println("converted object representation: " + modelObj);
System.out.println("\nA object from collection framework\n");
// for collection framework objects
List<String> listOfString = new ArrayList<>();
listOfString.add("ajduke");
listOfString.add("ajduchess");
// conversion to json
String jsonStr = gson.toJson(listOfString);
System.out.println("json representation :" + jsonStr);
Type collectionType2 = new TypeToken<List<String>>() {
}.getType();
List<String> listObj = gson.fromJson(jsonStr, collectionType2);
System.out.println("converted object representation: " + listObj);
输出:
A generic object demo
json representation :{"value":12}
converted object representation: Model2 [value=12]
A object from collection framework
json representation :["ajduke","ajduchess"]
converted object representation: [ajduke, ajduchess]
也就是说,GSON把json转换为JAVA泛型对象的时候,要先定义好
Type collectionType = new TypeToken<GenericModel<Integer>>() {
}.getType()
告诉到底用什么类型,然后再用fromjson方法
3) 使用transient指定不需要转换为json的属性
public class ModelObject { String name; transient int val; boolean status; double f; public ModelObject(String name, int val, boolean status, double f) { super(); this.name = name; this.val = val; this.status = status; this.f = f; } @Override public String toString() { return "ModelObject [name=" + name + ", val=" + val + ", status=" + status + ", f=" + f + "]"; } }
则转换程序:
Gson gson = new Gson(); // original object ModelObject modelObject = new ModelObject("namesake", 50, true, 4.3); System.out.print("Original Java object : "); System.out.println(modelObject); // converting to an json representation String json = gson.toJson(modelObject); System.out.print("Converted JSON string is : "); System.out.println(json); // getting back the object from json representation ModelObject modelObject3 = gson.fromJson(json, ModelObject.class); System.out.print("Converted Java object : "); System.out.println(modelObject3);
则输出的信息中,就不会转换val了.
4) 也可以使用注解,指定哪些是要暴露转换的属性,如:
@Expose private Integer businessId;
但这个时候要用
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation()
.create();
BusinessSystem bus = (BusinessSystem) (gson.fromJson(data,
BusinessSystem.class));
这样类似的方式转换;
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1579方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 2019前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3473info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2236import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 490https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 691public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 611https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 671https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 438https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 5441 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3101微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 617https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1844什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 967本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1363原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 863public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 674在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 941-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 772一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1907介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
在Java开发中,Gson库是一个非常常用的工具,它由Google提供,用于将Java对象转换为JSON字符串,以及将JSON字符串反序列化回Java对象。本教程将详细讲解如何使用Gson库处理不同类型的JSON数据。 一、Gson库基础 1....
下面将详细介绍Gson库的主要功能、用法以及常见应用场景。 一、Gson基本概念 1. JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript...
在Java开发中,处理JSON数据是一项常见的任务,而Gson和JsonBean是两个常用的库,用于将Java对象转换为JSON格式以及将JSON字符串反序列化为Java对象。本篇文章将详细探讨这两个库的使用方法,并通过一个具体的案例来...
在Java世界中,有多种库可以帮助我们解析和生成JSON,其中最常用的包括org.json、Google的Gson以及阿里巴巴的FastJson。下面我们将详细探讨这三种JSON解析库的使用方法。 1. **org.json**: org.json是一个开源的...
在Java编程中,处理JSON数据有两个常用的库:Gson和Fast-Json。 1. **Gson库**: - Gson是由Google提供的,它可以方便地将Java对象转换为JSON字符串,反之亦然。这个库以快速和高效著称,代码简洁,易于使用。 - ...
在Java中,常用的JSON库有Gson、Jackson、org.json和Fastjson等。这些库提供了方便的方法,将Java对象(如实体类)序列化为JSON字符串,以及将JSON字符串反序列化为Java对象。 描述中的“将实体类转换为JSON对象所...
JackSon和Gson是Java开发中常用的两个JSON解析库。它们都提供了方便快捷的方式来序列化和反序列化Java对象为JSON字符串,以及将JSON字符串转换回Java对象。 1. **JackSon**:由FasterXML公司维护,是Java中非常流行...
除了Jackson,Gson库也是常用的JSON处理工具,其API设计简洁,使用也很直观。例如,将JSON转换为Java对象: ```java import com.google.gson.Gson; Gson gson = new Gson(); Person person = gson.fromJson(json...
总结起来,Volley是一个强大且易用的网络请求库,提供了丰富的功能,包括JSON处理、请求缓存、网络预检查等。通过掌握这些常用方法,开发者可以更高效地处理Android应用中的网络通信任务。不过,使用Volley时也需要...
JSON(JavaScript Object Notation)...理解这两个库的基本用法和特性,能够帮助开发者高效地进行数据交换和处理,提升项目的可维护性和性能。在实际项目中,可以根据具体需求选择合适的库,并利用其高级特性优化代码。
总结,解析JSON数组在Java中是一项常见的任务,通过引入合适的jar包(如Jackson、Gson或org.json),我们可以轻松地完成这个任务。每个库都有其独特的优点和用法,选择哪一个取决于项目的需求和个人偏好。理解并熟练...
此外,Gson库也是常用的Json处理库,它的用法与Jackson类似,但语法稍有不同。例如,Gson的转换方法如下: 1. 将JavaBean转换为Json字符串: ```java Gson gson = new Gson(); String jsonString = gson.toJson...
本文将详细介绍几种常用的JSON解析工具及其用法。 #### 一、Gson解析JSON的特点 Gson是Google提供的一个开源库,用于将Java对象转换成JSON字符串,或将JSON字符串转换为等效的Java对象。Gson具有以下三个主要特点...
常用的库有Jackson和Gson。 2. **使用注解简化操作** - `@RequestBody`:用于将请求体中的JSON数据转换为Java对象。 - `@ResponseBody`:用于将Java对象转换为JSON数据,并作为响应体返回。 #### 五、总结 ...
除了Jackson,Gson库也是常用的JSON解析工具,它的用法略有不同,但同样简单易用。例如,使用Gson将JSON字符串转化为Java对象: ```java import com.google.gson.Gson; public class GsonDemo { public static ...
本篇文章将详细讲解Volley、OkHttp和Retrofit这三种常用的网络请求库的基本用法,帮助开发者更好地理解和选择适合自己的请求方式。 **Volley** Volley是由Google官方推出的网络请求库,它专注于Android平台,提供...
总结来说,JDOM和DOM4J用于XML处理,JSON和Gson用于JSON操作,Apache Commons提供各种通用的工具方法,JSTL简化了JSP页面的编写,jQuery插件增强了前端交互,所有这些库都极大地丰富了Java开发者的工具箱,提高了...
目录 第一篇 Android开发初步 第1章 Android初识 1.1 Android简介 1.1.1 认识Android 1.1.2 Android系统框架 1.1.3 应用程序框架 1.2 Eclipse开发环境 1.2.1 安装ADT插件 1.2.2 安装SDK ...16.7 本章小结
另一个常用的JSON解析库是Gson,它是Google提供的。Gson的使用方式也类似,但语法有所不同。例如,使用Gson解析上述JSON字符串,我们需要在Java类中添加`@SerializedName`注解来指定JSON字段名,然后调用`fromJson`...
IoC、AOP加解密:DES、MD5、AESXML/JSON:fastjson、XStreamLog4j:常用的xml配置、输出栈桢的用法Commons BeanUtils:General:比较器、org.json.JSONObject、Google Gson、Alibaba Fastjson、时间戳、IP地址解析...