博客分类: J2EE
jsonXML
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=="
}
Java代码
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;
}
}
Java代码
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
Java代码
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);
分享到:
相关推荐
一、Jackson简介 Jackson是Java中的一个开源库,由 FasterXML 维护,主要用于处理JSON数据。它提供了多种模块,如`core`、`mapper`、`annotations`等,以满足不同场景下的需求。其中,`core`模块提供了基本的JSON...
### Jackson电动力学习题答案详解 #### 一、Jackson电动力学概述 《Classical Electrodynamics》(经典电动力学)第三版是由J.D. Jackson编写的经典教材,在学术界享有极高的声誉。该书内容详尽、研究深入且备受...
1. Jackson简介: Jackson是Java中最流行的JSON处理库之一,由FasterXML公司维护。它提供了一套完整的API来处理JSON,包括读取、写入、映射到Java对象等。Jackson分为多个模块,如jackson-databind、jackson-core和...
1. **Jackson库简介**: Jackson是一个高性能的库,用于在Java对象和JSON数据之间进行映射。它的设计目标是提供快速、高效的JSON处理能力,并且易于使用。Jackson提供了多种模块,包括核心的`jackson-databind`模块...
**Jackson-databind简介** Jackson-databind是 FasterXML 项目的一部分,由Tatu Saloranta开发。这个库使得Java对象可以直接转换为JSON格式,并且可以从JSON字符串中恢复为Java对象。通过使用Jackson-databind,...
一、Jackson库简介 Jackson是由 FasterXML 组织开发的一套开源JSON处理库,包括`jackson-core`、`jackson-databind`和`jackson-annotations`三大模块。`jackson-core`作为基础模块,提供了基本的JSON流解析和生成API...
一、Jackson简介 Jackson是由FasterXML团队开发的开源库,它的全名是com.fasterxml.jackson.databind,是Java应用程序处理JSON的首选工具之一。Jackson库包含了多个模块,如jackson-databind、jackson-core和jackson...
**Jackson简介** Jackson是另一个流行的数据绑定库,主要用于处理JSON。Jackson提供了一套API,使得JSON序列化和反序列化变得简单。它支持多种使用方式,包括基于注解的、基于配置的以及基于流的API。Jackson的`@...
1. Jackson简介: Jackson是FasterXML公司推出的一个高性能的JSON处理库,由一系列相互配合的模块组成。它提供了多种方式来处理JSON数据,包括流式API、树模型API和注解驱动的对象映射。`jackson-mapper-asl`模块是...
一、Jackson库简介 Jackson库的核心组件包括: 1. `Jackson-databind`:提供将Java对象映射到JSON和从JSON反序列化回Java对象的功能。 2. `Jackson-core`:基础解析器和生成器,支持JSON流处理。 3. `Jackson-...
1. Jackson简介 Jackson是由FasterXML团队开发的一个开源项目,其主要目标是提供高性能、高效率的JSON处理功能。Jackson分为多个模块,如core、databind和jackson-dataformat-xml等,其中最常用的是jackson-databind...
1. Jackson简介: Jackson是由 FasterXML 组织开发的开源库,它提供了多种API,如 ObjectMapper、JsonParser 和 JsonGenerator,用于处理JSON数据。Jackson 2.9.3是该库的一个稳定版本,包含了许多改进和优化。 2. ...
### Jackson库简介 Jackson是由FasterXML公司开发的开源项目,它在Java社区中被广泛使用,因其高效和强大的功能而备受推崇。Jackson库包括多个模块,如`jackson-databind`、`jackson-core`和`jackson-annotations`,...
一、Jackson XTream简介 Jackson XTream,也称为Jackson DataBind for XML,是Jackson框架的一个子项目,旨在为XML提供类似于JSON解析的高效、灵活的API。通过使用XTream,开发者可以方便地将XML数据转换为Java对象...
1. **Jackson简介**:Jackson是一个高效的、开源的Java库,用于处理JSON数据。它提供了多个模块,包括流式API、树模型API以及数据绑定API。 2. **数据绑定**:Jackson的核心功能是数据绑定,即把JSON字符串转换为...
JSON简介 JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式。 JSON与 XML具有相同的特性,例如易于人编写和阅读,易于机器生成和解析。但是 JSON比XML数据传输的有效性要高出很多。 JSON完全...
在JSON序列化和反序列化领域,Jackson库是广泛使用的工具,然而,XML格式的数据在某些场景下仍然是必不可少的。因此,本文将深入探讨如何在Micronaut框架中集成Jackson XML,以实现对XML数据的有效处理。 一、...
jackson简介:Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个。虽然JDK自带了XML处理类库,但是相对来说比较低级,使用本文介绍的Jackson等高级类库处理起来会方便很多。
1. **Jackson库简介** Jackson是Java领域最流行的JSON处理库之一,由 FasterXML 维护。它包括三个主要模块:`jackson-core`、`jackson-annotations` 和 `jackson-databind`。 2. **jackson-databind** - `jackson...