Java 的 JSON 开源类库之JackSon工具类--JSONUtils

简介:

Java 的 JSON 开源类库之JackSon工具类--JSONUtils,有需要的朋友可以参考下。

JSON是JavaScriptObjectNotation的缩写,是一种轻量级的数据交换形式,是一种XML的替代方案,而且比XML更小,更快而且更易于解析。因为JSON描述对象的时候使用的是JavaScript语法,它是语言和平台独立的,并且这些年许多JSON的解析器和类库被开发出来。在这篇文章中,我们将会展示7种JavaJSON类库。基本上,我们将会试着把Java对象转换JSON格式并且存储到文件,并且反向操作,读JSON文件转换成一个对象。为了让文章更有意义,我们将会测量每一种JSON类库在不同情况下的处理速度。

Jackson库是一个“旨在为开发者提供更快,更正确,更轻量级,更符合人性思维”的类库。Jackson为处理JSON格式提供了三种模型的处理方法。

1、流式API或者增量解析/产生(incrementalparsing/generation):读写JSON内容被作为离散的事件。

2、树模型:提供一个可变内存树表示JSON文档。

3、数据绑定(Databinding):实现JSON与POJO(简单的Java对象(PlainOldJavaObject))的转换

我们感兴趣的是Java对象与JSON的转换,因此,我们将集中于第三种处理方法。首先我们需要下载Jackson。Jackson的核心功能使用三个类 库,分别是

jackson-core-2.3.1,jackson-databind-2.3.1和jackson-annotations- 2.3.1;三个类库的下载都来自于Maven仓库,给出地址:http://repo1.maven.org/maven2/com/fasterxml/jackson/

JackSon解析JSON数据的工具类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
public  class  JSONUtils {
 
     private  final  static  ObjectMapper objectMapper =  new  ObjectMapper();
 
     private  JSONUtils() {
 
     }
 
     public  static  ObjectMapper getInstance() {
 
         return  objectMapper;
     }
 
     /**
      * javaBean,list,array convert to json string
      */
     public  static  String obj2json(Object obj)  throws  Exception {
         return  objectMapper.writeValueAsString(obj);
     }
 
     /**
      * json string convert to javaBean
      */
     public  static  <T> T json2pojo(String jsonStr, Class<T> clazz)
             throws  Exception {
         return  objectMapper.readValue(jsonStr, clazz);
     }
 
     /**
      * json string convert to map
      */
     public  static  <T> Map<String, Object> json2map(String jsonStr)
             throws  Exception {
         return  objectMapper.readValue(jsonStr, Map. class );
     }
 
     /**
      * json string convert to map with javaBean
      */
     public  static  <T> Map<String, T> json2map(String jsonStr, Class<T> clazz)
             throws  Exception {
         Map<String, Map<String, Object>> map = objectMapper.readValue(jsonStr,
                 new  TypeReference<Map<String, T>>() {
                 });
         Map<String, T> result =  new  HashMap<String, T>();
         for  (Entry<String, Map<String, Object>> entry : map.entrySet()) {
             result.put(entry.getKey(), map2pojo(entry.getValue(), clazz));
         }
         return  result;
     }
 
     /**
      * json array string convert to list with javaBean
      */
     public  static  <T> List<T> json2list(String jsonArrayStr, Class<T> clazz)
             throws  Exception {
         List<Map<String, Object>> list = objectMapper.readValue(jsonArrayStr,
                 new  TypeReference<List<T>>() {
                 });
         List<T> result =  new  ArrayList<T>();
         for  (Map<String, Object> map : list) {
             result.add(map2pojo(map, clazz));
         }
         return  result;
     }
 
     /**
      * map convert to javaBean
      */
     public  static  <T> T map2pojo(Map map, Class<T> clazz) {
         return  objectMapper.convertValue(map, clazz);
     }
}

转自:http://www.aichengxu.com/view/40515



本文转自 兴趣e族 51CTO博客,原文链接:http://blog.51cto.com/simplelife/1828070

相关文章
|
17天前
|
SQL 监控 数据可视化
完全开源!国内首个完全开源JAVA企业级低代码平台
JeeLowCode 是一款专为企业打造的 Java 企业级低代码开发平台,通过五大核心引擎(SQL、功能、模板、图表、切面)和四大服务体系(开发、设计、图表、模版),简化开发流程,降低技术门槛,提高研发效率。平台支持多端适配、国际化、事件绑定与动态交互等功能,广泛适用于 OA、ERP、IoT 等多种管理信息系统,帮助企业加速数字化转型。
|
23天前
|
SQL 监控 数据可视化
完全开源!国内首个完全开源JAVA企业级低代码平台
JeeLowCode 是一款专为企业打造的 Java 企业级低代码开发平台,通过五大核心引擎(SQL、功能、模板、图表、切面)和四大服务体系(开发、设计、图表、模版),简化开发流程,降低技术门槛,提高研发效率。平台支持多端适配、国际化、事件绑定与动态交互等功能,广泛适用于 OA、ERP、IoT 等多种管理信息系统,帮助企业加速数字化转型。
完全开源!国内首个完全开源JAVA企业级低代码平台
|
1月前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
在Java中处理JSON数据:Jackson与Gson库比较
|
1月前
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
107 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
1月前
|
Java
Java 些许公共工具类
Java 些许公共工具类
15 1
|
1月前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
69 1
|
2月前
|
JSON Java fastjson
java小工具util系列3:JSON和实体类转换工具
java小工具util系列3:JSON和实体类转换工具
27 2
|
2月前
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
143 2
|
3月前
|
缓存 前端开发 Java
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
【8月更文挑战第10天】java基础巩固,工具类的封装
27 1
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
|
3月前
|
Java
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
下一篇
无影云桌面