`
zzc1684
  • 浏览: 1227980 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Json解析工具Jackson(简单应用)

阅读更多
  • 概述

         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类:

  1. public class Person {  
  2.     private String name;  
  3.     private int age;  
  4.   
  5.     public String getName() {  
  6.         return name;  
  7.     }  
  8.   
  9.     public void setName(String name) {  
  10.         this.name = name;  
  11.     }  
  12.   
  13.     public int getAge() {  
  14.         return age;  
  15.     }  
  16.   
  17.     public void setAge(int age) {  
  18.         this.age = age;  
  19.     }  
  20.   
  21.     public Person(String name, int age) {  
  22.         this.name = name;  
  23.         this.age = age;  
  24.     }  
  25.   
  26.     public Person() {  
  27.     }  
  28.   
  29. }  

          测试类:

  1. public class Demo {  
  2.     public static void main(String[] args) {  
  3.   
  4.         // writeJsonObject();  
  5.   
  6.         // readJsonObject();  
  7.   
  8.         // readJsonMap();  
  9.     }  
  10.   
  11.       
  12.   
  13.     // 直接写入一个对象  
  14.     public static void writeJsonObject() {  
  15.         ObjectMapper mapper = new ObjectMapper();  
  16.         Person person = new Person("nomouse"25);  
  17.         try {  
  18.             mapper.writeValue(new File("c:/person.json"), person);  
  19.         } catch (JsonGenerationException e) {  
  20.             e.printStackTrace();  
  21.         } catch (JsonMappingException e) {  
  22.             e.printStackTrace();  
  23.         } catch (IOException e) {  
  24.             e.printStackTrace();  
  25.         }  
  26.     }  
  27.   
  28.     // 直接将一个json转化为对象  
  29.     public static void readJsonObject() {  
  30.         ObjectMapper mapper = new ObjectMapper();  
  31.   
  32.         try {  
  33.             Person person = mapper.readValue(new File("c:/person.json"),  
  34.                     Person.class);  
  35.             System.out.println(person.getName() + ":" + person.getAge());  
  36.         } catch (JsonParseException e) {  
  37.             e.printStackTrace();  
  38.         } catch (JsonMappingException e) {  
  39.             e.printStackTrace();  
  40.         } catch (IOException e) {  
  41.             e.printStackTrace();  
  42.         }  
  43.     }  
  44.   
  45.     // 直接转化为map  
  46.     public static void readJsonMap() {  
  47.         ObjectMapper mapper = new ObjectMapper();  
  48.   
  49.         try {  
  50.             // 需要注意的是这里的Map实际为一个LikedHashMap,即链式哈希表,可以按照读入顺序遍历  
  51.             Map map = mapper.readValue(new File("c:/person.json"), Map.class);  
  52.             System.out.println(map.get("name") + ":" + map.get("age"));  
  53.         } catch (JsonParseException e) {  
  54.             e.printStackTrace();  
  55.         } catch (JsonMappingException e) {  
  56.             e.printStackTrace();  
  57.         } catch (IOException e) {  
  58.             e.printStackTrace();  
  59.         }  
  60.     }  
  61.   

分享到:
评论

相关推荐

    json转换工具jackson

    博文链接(已失效)可能涉及实际案例或教程,包括但不限于使用Jackson解析JSON,自定义序列化规则,或者解决特定问题的解决方案。 以上是对Jackson库作为JSON转换工具的关键知识点的概述。通过深入理解和熟练应用...

    json解析利器-jackson

    - **使用`JsonNode` API**:对于更灵活的JSON解析,可以使用`JsonNode`抽象类,它表示JSON结构的树形模型。你可以遍历节点、获取值、修改数据等。 - **处理复杂类型**:Jackson支持Java集合(List、Set、Map)以及...

    json解析工具类

    JSON解析工具类是为了帮助开发者有效地处理JSON字符串,验证其有效性,并从中提取所需的数据。 在Java开发中,有许多流行的JSON库可供选择,例如Gson、Jackson、org.json和Fastjson等。这些库提供了方便的API,可以...

    最好用的Json工具.exe

    1. JSON解析库:Android SDK本身包含了`org.json`包,提供简单的JSON解析。但更常用的是Gson库(由Google提供)和Jackson库,它们提供了更强大的序列化和反序列化功能,可以直接将JSON字符串转化为Java对象或反之。 ...

    Json实体解析工具

    4. **映射与绑定**:在某些高级的JSON解析库中,如AutoMapper(C#)或Jackson(Java),它们支持对象到JSON和JSON到对象的自动映射,极大地简化了数据操作。 5. **查询与操作**:某些工具可能提供查询和操作JSON...

    json格式数据解析工具类

    在Java开发中,处理JSON数据通常需要借助JSON解析库,如Gson、Jackson、org.json等。本文档介绍的“json格式数据解析工具类”正是为了简化这一过程而设计的,通过这个工具类,开发者可以直接传入JSON字符串,调用...

    最全的 json解析JAR包

    "最全的json解析JAR包"可能包含了上述提到的多个库的JAR文件,这使得开发者可以在不安装额外框架的情况下,根据项目需求选择合适的JSON解析工具。 6. 引入和使用: 要在Java项目中使用这些库,通常需要将JAR文件...

    json jackson 工具类

    Jackson是Java领域中处理JSON的主流库之一,它提供了高效、功能丰富的API和工具,使得JSON序列化和反序列化变得简单。在这个“json jackson 工具类”中,我们看到对Jackson进行了封装,以便更方便地进行字符串与JSON...

    play-json4s-jackson_2.11-0.3.0.zip

    2. **Json4s**:Json4s 是一个 Scala 的 JSON 库,其目标是提供一种简单的方式来解析和生成 JSON。通过提供多种 JSON 库的抽象,json4s 允许开发者在不改变代码的情况下切换底层实现。 3. **Jackson**:Jackson 是...

    com.alibaba.fastjson json解析工具包

    `com.alibaba.fastjson`是阿里巴巴开发的...在处理JSON数据时,`fastjson`的高效、易用和全面性使得它成为首选的JSON解析库。通过理解并熟练使用`fastjson`,开发者可以提高代码的可读性和运行效率,简化数据处理流程。

    json解析的几个工具包好gson,jackson,json_lib

    在Java中,有多个库可以帮助我们解析和生成JSON,如Gson、Jackson和json-lib。以下是对这三个库的详细介绍: 1. Gson: Gson是Google提供的一个开源库,用于将Java对象转换为JSON字符串,反之亦然。它提供了简单...

    JSON解析demo.zip

    通过这个示例,你将有机会深入理解JSON解析的原理,学习如何创建自定义的解析类,以及如何在实际项目中有效利用这些工具。无论是`org.json`库的基础操作,还是自定义封装类的高级技巧,都会对你的Android开发工作...

    Json解析辅助.zip

    本篇将围绕“Json解析辅助”这一主题,详细讲解JSON的基本概念、结构、解析方法以及相关辅助工具的应用。 1. JSON的基本结构: JSON基于JavaScript的一个子集,主要由对象和数组两种基本结构构成。对象是键值对的...

    三种json解析方法

    下面将详细介绍这三种流行的JSON解析库。 1. **json-lib**: json-lib是Java的一个开源库,它提供了一套完整的JSON处理API,包括JSON的解析、生成、转换等功能。json-lib支持多种Java对象到JSON的转换,例如...

    Json 数据格式化 jackson

    2. **jackson-core-2.9.0.jar**:这个模块提供了JSON解析和生成的基础功能,包括流式API(JsonParser和JsonGenerator),它们允许程序逐事件地处理JSON输入或生成JSON输出。这是Jackson库的基础,其他模块如databind...

    Jackson进行JSON解析和序列化jar包

    使用Jackson进行JSON解析和序列化的简单示例: ```java import com.fasterxml.jackson.databind.ObjectMapper; public class Main { public static void main(String[] args) throws Exception { String json...

    json解析 jar包

    总之,`json解析 jar包`是Java开发中处理JSON数据的关键工具,`com.fasterxml.jackson.core`和`com.fasterxml.jackson.databind`提供了强大且灵活的功能,使得在Java应用程序中处理JSON变得简单易行。无论是解析JSON...

    阿里json解析包1.2.9.jar

    阿里JSON解析包不仅仅包含核心的JSON解析功能,还可能包含一些额外的特性,例如支持JSONPath(类似XPath的JSON查询语言)、JSON Schema验证、以及对于Gson、Jackson等其他JSON库的兼容接口等。在使用过程中,开发者...

    json-lib 解析json串工具类

    这个工具类“json-lib 解析json串工具类”就是专门为了解析JSON字符串而设计的,它能够帮助开发者有效地将JSON数据转换为Java对象,反之亦然。 1. **JSON对象与Java对象的映射** `json-lib`库支持将JSON对象转换为...

    json所需要的夹包,json解析用,json,json夹包和教程,解析json所需要的夹包

    标题和描述中提到的"json所需要的夹包,json解析用,json,json夹包和教程",是指为了处理JSON数据,开发者需要获取和了解相应的解析库或工具,并学习如何使用它们。这些“夹包”提供了将JSON字符串转换为编程语言中...

Global site tag (gtag.js) - Google Analytics