• 概述

Jackson库(http://jackson.codehaus.org),是基于Java语言的开源json格式解析工具,整个库(使用最新的2.2版本)包含3个jar包:

  1. jackson-core.jar——核心包(必须),提供基于“流模式”解析的API。
  2. jackson-databind——数据绑定包(可选),提供基于“对象绑定”和“树模型”相关API。
  3. jackson-annotations——注解包(可选),提供注解功能。
  • Jackson的优势

相对于Java json解析的其他库,诸如json-lib、gson包,Jackson具有以下优点:

  1. 功能全面,提供多种模式的json解析方式,“对象绑定”使用方便,利用注解包能为我们开发提供很多便利。
  2. 性能较高,“流模式”的解析效率超过绝大多数类似的json包。
  • 重要API
  1. 核心包:JsonPaser(json流读取),JsonGenerator(json流输出)。
  2. 数据绑定包:ObjectMapper(构建树模式和对象绑定模式),JsonNode(树节点)。
  • 简单例子

在实际应用中,用的最多的是数据对象绑定的模式,即将一个对象序列化为json字符串和将一串json字符串反序列化为java对象或Map。

Person类:

    public class Person {  private String name;  private int age;  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }  public int getAge() {  return age;  }  public void setAge(int age) {  this.age = age;  }  public Person(String name, int age) {  this.name = name;  this.age = age;  }  public Person() {  }  }  

测试类:

    public class Demo {  public static void main(String[] args) {  // writeJsonObject();  // readJsonObject();  // readJsonMap();  }  // 直接写入一个对象  public static void writeJsonObject() {  ObjectMapper mapper = new ObjectMapper();  Person person = new Person("nomouse", 25);  try {  mapper.writeValue(new File("c:/person.json"), person);  } catch (JsonGenerationException e) {  e.printStackTrace();  } catch (JsonMappingException e) {  e.printStackTrace();  } catch (IOException e) {  e.printStackTrace();  }  }  // 直接将一个json转化为对象  public static void readJsonObject() {  ObjectMapper mapper = new ObjectMapper();  try {  Person person = mapper.readValue(new File("c:/person.json"),  Person.class);  System.out.println(person.getName() + ":" + person.getAge());  } catch (JsonParseException e) {  e.printStackTrace();  } catch (JsonMappingException e) {  e.printStackTrace();  } catch (IOException e) {  e.printStackTrace();  }  }  // 直接转化为map  public static void readJsonMap() {  ObjectMapper mapper = new ObjectMapper();  try {  // 需要注意的是这里的Map实际为一个LikedHashMap,即链式哈希表,可以按照读入顺序遍历  Map map = mapper.readValue(new File("c:/person.json"), Map.class);  System.out.println(map.get("name") + ":" + map.get("age"));  } catch (JsonParseException e) {  e.printStackTrace();  } catch (JsonMappingException e) {  e.printStackTrace();  } catch (IOException e) {  e.printStackTrace();  }  }  }  

Json解析工具Jackson(简单应用)相关推荐

  1. Json解析工具Jackson(使用注解)

    接上一篇文章Json解析工具Jackson(简单应用),jackson在实际应用中给我们提供了一系列注解,提高了开发的灵活性,下面介绍一下最常用的一些注解 @JsonIgnoreProperties ...

  2. 一文吃透Json解析工具类合集(FastJson、Jackson、Gson)

    Json解析工具类 前言 一.各个JSON技术的简介 1.1 FastJson角色 1.2 Jackson角色 1.3 Gson角色 二.使用步骤 2.1 引入库 1.FastJson依赖 2.Jac ...

  3. JSON解析工具比较,主要GSON和FastJSON

    转自:http://www.cnblogs.com/kunpengit/p/4001680.html 一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的 ...

  4. java 自定义json解析注解 复杂json解析 工具类

    java 自定义json解析注解 复杂json解析 工具类 目录 java 自定义json解析注解 复杂json解析 工具类 1.背景 2.需求-各式各样的json 一.一星难度json[json对象 ...

  5. json解析工具(json解析工具 python)

    常用的xml,json解析工具有哪些 1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可 ...

  6. Java常用的几种JSON解析工具

    一.Gson:Google开源的JSON解析库 1.添加依赖 <!--gson--> <dependency><groupId>com.google.code.gs ...

  7. FastJson快速上手【Json解析工具】

    目录 一.spring boot工程中引入FastJson依赖 二.调用JSON类的静态方法直接进行json序列化和反序列化 2.1 序列化 2.2 反序列化 三.快速演示: 四.思考 五.web案例 ...

  8. Java:JSON解析工具-org.json

    一.简介 org.json是Java常用的Json解析工具,主要提供JSONObject和JSONArray类,现在就各个类的使用解释如下. 二.准备 1.在使用org.json之前,我们应该先从该网 ...

  9. 自定义Json解析工具

    此博客为博主原创文章,转载请标明出处,维权必究:https://www.cnblogs.com/tangZH/p/10689536.html fastjson是很好用的json解析工具,只可惜项目中要 ...

最新文章

  1. 常用的设计模式汇总,超详细!
  2. 原始 H.264 码流播放
  3. js 中使用 时间datetime 类型到前端iOS 不兼容问题
  4. 如何更改mysql服务名_技术小百科 |【云小课】数据复制服务如何实现对象名映射...
  5. 【Python】爬虫原理
  6. 链栈,用链表写成的栈,源代码如下
  7. python网络编程-socketserver模块
  8. 不够持久?大疆无人机有了新无线充电系统,电力增强+++
  9. python flask快速入门与进阶-Flask基础进阶与python flask实战bbs教程
  10. 如何搭建数据标准管理平台
  11. linux 解压war到root_解压war包的解压软件 war包可以用解压工具解开吗
  12. php imagick 取得psd缩略图,PHP中使用Imagick操作PSD文件实例
  13. 处理一份内心煎熬的工作有两种方法——只有一种是正确的
  14. 中国工业园区建设与运营市场发展状况与投资战略咨询报告2022-2028年
  15. java和易语言对比_国外流行排行榜编程语言和易语言相比较的优势和劣势
  16. Grain Identity
  17. Windows Server 2003服务器群集创建和配置指南
  18. 智汀智能家居知识普及篇——家居智能控制方式及控制系统的特点,你知道几个?
  19. 大数据技术Hive详解
  20. 遗传算法优化BP神经网络的实例

热门文章

  1. DataTables—服务器端翻页
  2. 一条开启勇士王朝的短信
  3. C#调用bat 不显示DOS窗口,禁止DOS窗口一闪而过
  4. [置顶] 自己动手写Web容器之TomJetty之六:动态页面引入
  5. ANSI,Unicode,UTF-8网页编码的区别【转】
  6. 类成员的访问修饰符和可访问性
  7. [原创]个人工具 - 对APK极限压缩并对齐的工具(58.ReExtremeZipAndAlignAPK)
  8. Jquery根据JSON生成Table
  9. keepalive配置mysql自动故障转移
  10. SV processses