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

相关文章
|
5月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
271 1
|
5月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
292 1
|
6月前
|
消息中间件 人工智能 Java
抖音微信爆款小游戏大全:免费休闲/竞技/益智/PHP+Java全筏开源开发
本文基于2025年最新行业数据,深入解析抖音/微信爆款小游戏的开发逻辑,重点讲解PHP+Java双引擎架构实战,涵盖技术选型、架构设计、性能优化与开源生态,提供完整开源工具链,助力开发者从理论到落地打造高留存、高并发的小游戏产品。
|
6月前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
2547 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
7月前
|
Java Linux Apache
Apache NetBeans 27 (macOS, Linux, Windows) - Java 等多语言开源跨平台 IDE
Apache NetBeans 27 (macOS, Linux, Windows) - Java 等多语言开源跨平台 IDE
415 5
Apache NetBeans 27 (macOS, Linux, Windows) - Java 等多语言开源跨平台 IDE
|
8月前
|
Java 数据安全/隐私保护
快手小红书抖音留痕工具,自动留痕插件工具,java代码开源
这个框架包含三个核心模块:主操作类处理点赞评论、配置管理类和代理管理类。使用时需要配合
|
9月前
|
文字识别 监控 Java
顺丰同城抢单辅助脚本,顺丰骑士抢单辅助免封号,自动抢单神器【java版开源】
这是一套OCR实时检测订单列表并自动右滑的完整代码方案,适用于学习研究。代码包含四个主要模块:OCR处理(文字识别)、价格分析
|
9月前
|
NoSQL Java Redis
推荐一款好用的开源免费Java CMS内容管理站群系统
Java开源内容管理系统(JProcms),基于SpringCloud、SpringBoot、MyBatisPlus、Vue3等技术构建,采用Apache-2.0协议,支持免费商用。系统具备自定义字段存储与可视化设计、API制作网站群页面等功能,强调简单灵活的设计理念,降低二次开发成本。支持多种数据库、消息队列和认证方式,提供SaaS多租户、动态权限菜单、工作流配置等强大功能,同时集成阿里云、腾讯云服务,适用于高效建站与内容管理。
1510 4
|
10月前
|
人工智能 Kubernetes Java
回归开源,两位 Java 和 Go 程序员分享的开源贡献指引
Higress是一个基于Istio和Envoy的云原生API网关,支持AI功能扩展。它通过Go/Rust/JS编写的Wasm插件提供可扩展架构,并包含Node和Java的console模块。Higress起源于阿里巴巴,解决了Tengine配置重载及gRPC/Dubbo负载均衡问题,现已成为阿里云API网关的基础。本文介绍Higress的基本架构、功能(如AI网关、API管理、Ingress流量网关等)、部署方式以及如何参与开源贡献。此外,还提供了有效的开源贡献指南和社区交流信息。
1130 33