`
hypgr
  • 浏览: 276868 次
社区版块
存档分类
最新评论

Jackson 使用简介

阅读更多
 

http://jackson.codehaus.org/

lib:
jackson-core-asl-1.6.0.jar
jackson-mapper-asl-1.6.0.jar

心得:最方便的是Full Data Binding 方式,不用额外处理,但是POJO的属性名需要与JSON的变量名一一对应。对于需要做JSON变量名和POJO属性名转换的话,使用Tree Model。

Jackson提供了三种方式处理JSON
Streaming API , 基于事件处理JSON,类似StAX API。性能最好,其它两种方法都是建立在它之上
Tree Model 提供了内建文档树方式来展现JSON,类似XML DOM。最灵活。
Data Binding 使用注释或者属性访问器JSON与POJOs之间转换。最方便。

以下是官方网站的例子
1.Full Data Bindaing(POJO) Example
{
  "name" : { "first" : "Joe", "last" : "Sixpack" },
  "gender" : "MALE",
  "verified" : false,
  "userImage" : "Rm9vYmFyIQ=="
}

 

  public class User {  
      public enum Gender {  
          MALE, FEMALE  
      };  
    
      public static class Name {  
          private String _first, _last;  
    
          public String getFirst() {  
              return _first;  
          }  
    
          public String getLast() {  
              return _last;  
          }  
    
          public void setFirst(String s) {  
              _first = s;  
          }  
    
          public void setLast(String s) {  
              _last = s;  
          }  
      }  
    
      private Gender _gender;  
      private Name _name;  
      private boolean _isVerified;  
      private byte[] _userImage;  
    
      public Name getName() {  
          return _name;  
      }  
    
      public boolean isVerified() {  
          return _isVerified;  
      }  
    
      public Gender getGender() {  
          return _gender;  
      }  
    
      public byte[] getUserImage() {  
          return _userImage;  
      }  
    
      public void setName(Name n) {  
          _name = n;  
      }  
    
      public void setVerified(boolean b) {  
          _isVerified = b;  
      }  
    
      public void setGender(Gender g) {  
          _gender = g;  
      }  
    
      public void setUserImage(byte[] b) {  
          _userImage = b;  
      }  
    
  }  
 

 

 

 ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally  
User user = mapper.readValue(new File("user.json"), User.class);  
mapper.writeValue(new File("user-modified.json"), user);  
 
ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
User user = mapper.readValue(new File("user.json"), User.class);
mapper.writeValue(new File("user-modified.json"), user);



2.Simple Data Binding Example
Map<String, Object> userData = mapper.readValue(new File("user.json"), Map.class);
userData = new HashMap<String, Object>();
Map<String, String> nameStruct = new HashMap<String, String>();
nameStruct.put("first", "Joe");
nameStruct.put("last", "Sixpack");
userData.put("name", nameStruct);
userData.put("gender", "MALE");
userData.put("verified", Boolean.FALSE);
userData.put("userImage", "Rm9vYmFyIQ==");
mapper.writeValue(new File("user-modified.json"), userData);
Concrete Java types that Jackson will use for simple data binding are:

JSON Type Java Type
object LinkedHashMap<String,Object>
array ArrayList<Object>
string String
number (no fraction) Integer, Long or BigInteger (smallest applicable)
number (fraction) Double (configurable to use BigDecimal)
true false Boolean
null null



3.The Model Example

ObjectMapper m = new ObjectMapper();  
// can either use mapper.readTree(JsonParser), or bind to JsonNode  
JsonNode rootNode = m.readValue(new File("user.json"), JsonNode.class);  
// ensure that "last name" isn't "Xmler"; if is, change to "Jsoner"  
JsonNode nameNode = rootNode.path("name");  
String lastName = nameNode.path("last").getTextValue();  
if ("xmler".equalsIgnoreCase(lastName)) {  
    ((ObjectNode)nameNode).put("last", "Jsoner");  
}  
// and write it out:  
m.writeValue(new File("user-modified.json"), rootNode); 
 
分享到:
评论

相关推荐

    spring使用jackson实现json

    一、Jackson简介 Jackson是Java中的一个开源库,由 FasterXML 维护,主要用于处理JSON数据。它提供了多种模块,如`core`、`mapper`、`annotations`等,以满足不同场景下的需求。其中,`core`模块提供了基本的JSON...

    jackson电动力学习题答案

    ### Jackson电动力学习题答案详解 #### 一、Jackson电动力学概述 《Classical Electrodynamics》(经典电动力学)第三版是由J.D. Jackson编写的经典教材,在学术界享有极高的声誉。该书内容详尽、研究深入且备受...

    jackson为springmvc3升级需要

    1. Jackson简介: Jackson是Java中最流行的JSON处理库之一,由FasterXML公司维护。它提供了一套完整的API来处理JSON,包括读取、写入、映射到Java对象等。Jackson分为多个模块,如jackson-databind、jackson-core和...

    jackson2.4.2.0.jar

    1. **Jackson库简介**: Jackson是一个高性能的库,用于在Java对象和JSON数据之间进行映射。它的设计目标是提供快速、高效的JSON处理能力,并且易于使用。Jackson提供了多种模块,包括核心的`jackson-databind`模块...

    jackson-databind-2.4.0 /2.4.4 /2.4.5.jar

    **Jackson-databind简介** Jackson-databind是 FasterXML 项目的一部分,由Tatu Saloranta开发。这个库使得Java对象可以直接转换为JSON格式,并且可以从JSON字符串中恢复为Java对象。通过使用Jackson-databind,...

    jackson-core-2.2.1.jar

    一、Jackson库简介 Jackson是由 FasterXML 组织开发的一套开源JSON处理库,包括`jackson-core`、`jackson-databind`和`jackson-annotations`三大模块。`jackson-core`作为基础模块,提供了基本的JSON流解析和生成API...

    Jackson学习实例

    一、Jackson简介 Jackson是由FasterXML团队开发的开源库,它的全名是com.fasterxml.jackson.databind,是Java应用程序处理JSON的首选工具之一。Jackson库包含了多个模块,如jackson-databind、jackson-core和jackson...

    jaxb和jackson的jar

    **Jackson简介** Jackson是另一个流行的数据绑定库,主要用于处理JSON。Jackson提供了一套API,使得JSON序列化和反序列化变得简单。它支持多种使用方式,包括基于注解的、基于配置的以及基于流的API。Jackson的`@...

    jackson-mapper-asl-1.9.11.jar

    1. Jackson简介: Jackson是FasterXML公司推出的一个高性能的JSON处理库,由一系列相互配合的模块组成。它提供了多种方式来处理JSON数据,包括流式API、树模型API和注解驱动的对象映射。`jackson-mapper-asl`模块是...

    Jackson实例入门

    一、Jackson库简介 Jackson库的核心组件包括: 1. `Jackson-databind`:提供将Java对象映射到JSON和从JSON反序列化回Java对象的功能。 2. `Jackson-core`:基础解析器和生成器,支持JSON流处理。 3. `Jackson-...

    《Jackson 框架,轻易转换JSON》学习笔记

    1. Jackson简介 Jackson是由FasterXML团队开发的一个开源项目,其主要目标是提供高性能、高效率的JSON处理功能。Jackson分为多个模块,如core、databind和jackson-dataformat-xml等,其中最常用的是jackson-databind...

    jackson-java对象解析为json

    1. Jackson简介: Jackson是由 FasterXML 组织开发的开源库,它提供了多种API,如 ObjectMapper、JsonParser 和 JsonGenerator,用于处理JSON数据。Jackson 2.9.3是该库的一个稳定版本,包含了许多改进和优化。 2. ...

    高性能的JSON处理 Jackson

    ### Jackson库简介 Jackson是由FasterXML公司开发的开源项目,它在Java社区中被广泛使用,因其高效和强大的功能而备受推崇。Jackson库包括多个模块,如`jackson-databind`、`jackson-core`和`jackson-annotations`,...

    jackson xtream应用

    一、Jackson XTream简介 Jackson XTream,也称为Jackson DataBind for XML,是Jackson框架的一个子项目,旨在为XML提供类似于JSON解析的高效、灵活的API。通过使用XTream,开发者可以方便地将XML数据转换为Java对象...

    完整jersey包和jackson-all-1.9.2.jar

    1. **Jackson简介**:Jackson是一个高效的、开源的Java库,用于处理JSON数据。它提供了多个模块,包括流式API、树模型API以及数据绑定API。 2. **数据绑定**:Jackson的核心功能是数据绑定,即把JSON字符串转换为...

    阿里 json 和jackson 完整Jar包

    JSON简介 JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式。 JSON与 XML具有相同的特性,例如易于人编写和阅读,易于机器生成和解析。但是 JSON比XML数据传输的有效性要高出很多。 JSON完全...

    micronaut-jackson-xml:Micronaut 与 Jackson XML 的集成

    在JSON序列化和反序列化领域,Jackson库是广泛使用的工具,然而,XML格式的数据在某些场景下仍然是必不可少的。因此,本文将深入探讨如何在Micronaut框架中集成Jackson XML,以实现对XML数据的有效处理。 一、...

    jackson.zip

    jackson简介:Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个。虽然JDK自带了XML处理类库,但是相对来说比较低级,使用本文介绍的Jackson等高级类库处理起来会方便很多。

    spring4 mvc json配置jar包

    1. **Jackson库简介** Jackson是Java领域最流行的JSON处理库之一,由 FasterXML 维护。它包括三个主要模块:`jackson-core`、`jackson-annotations` 和 `jackson-databind`。 2. **jackson-databind** - `jackson...

Global site tag (gtag.js) - Google Analytics