package com.test;
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.JavaType;
public class Test {
private static JsonGenerator jsonGenerator = null;
static ObjectMapper mapper = new ObjectMapper();
public static void main(String[] args) {
User user = new User();
user.setUserId("1");
user.setUserName("张三");
user.setDob(new Date());
User user2 = new User();
user2.setUserId("2");
user2.setUserName("李四");
user2.setDob(new Date());
Writer strWriter = new StringWriter();
try {
mapper.writeValue(strWriter, user);
String userDataJson = strWriter.toString();
System.out.println("userDataJson======="+userDataJson);
} catch (JsonGenerationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String userJson = "{\"userId\":\"1\",\"userName\":\"张三\",\"dob\":1408603469143}";
try {
User newUser = mapper.readValue(userJson, User.class);
System.out.println("userId===="+newUser.getUserId()+" username = "+ newUser.getUserName()+" date=="+ newUser.getDob());
} catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<User> userList =new ArrayList<User>();
userList.add(user);
userList.add(user2);
try {
System.out.println("1###" + mapper.writeValueAsString(userList));
} catch (JsonGenerationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (JsonMappingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
jsonGenerator = mapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8);
} catch (IOException e) {
e.printStackTrace();
}
try {
jsonGenerator.writeObject(userList);
} catch (JsonProcessingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String userJsonList = "[{\"userId\":\"1\",\"userName\":\"张三\",\"dob\":1408621742842},{\"userId\":\"2\",\"userName\":\"李四\",\"dob\":1408621742842}]";
try {
JavaType javaType = getCollectionType(ArrayList.class, User.class);
List<User> listUser = mapper.readValue(userJsonList, javaType);
for (int i = 0; i < listUser.size(); i++) {
User u = listUser.get(i);
System.out.println("id==="+u.getUserId()+" uname ==="+ u.getUserName()+" date=="+u.getDob());
}
System.out.println(listUser.size());
} catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {
return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
}
}
分享到:
相关推荐
在本文中,我们将深入探讨Jackson库的基本使用方法,特别是如何将JavaBean对象转换为JSON字符串,并了解如何忽略特定属性。 首先,使用Jackson库进行JSON操作,你需要引入相应的jar包。在标题和描述中提到的,你...
在本文中,我们将深入探讨Jackson的使用方法,尤其是它在序列化效率方面表现出的优势。 首先,Jackson的核心组件包括`ObjectMapper`,它是整个框架的入口点,负责将Java对象转换为JSON字符串(序列化)以及将JSON...
本文将详细介绍Jackson的使用方法,包括基本配置、对象转换为JSON字符串、忽略特定属性等核心概念。 首先,要使用Jackson库,你需要在项目中引入三个核心的JAR包: 1. `jackson-annotations-2.2.1.jar`:包含...
《让Jackson JSON生成的数据包含的中文以unicode方式编码》一文的配套代码。文章地址:http://blog.csdn.net/chaijunkun/article/details/8257209
在IT行业中,Jackson库是Java领域广泛使用的JSON处理库,特别是在Spring框架中。"jackson-annotations"、"jackson-core"和"jackson-databind"是Jackson库的三个核心模块,它们协同工作,提供了强大的JSON序列化和反...
Jackson是Java领域中广泛使用的JSON处理库,它提供了高效的序列化和反序列化功能,使得Java对象能够轻易地转换为JSON格式,反之亦然。在本文中,我们将深入探讨Jackson库的基本用法,包括如何安装、配置,以及如何将...
赠送jar包:jackson-dataformat-cbor-2.13.1.jar ...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、功能丰富的处理JSON的方式,包括序列化和反序列化。在这个包中提到了四个关键组件:"jackson-databind"、"jackson-annotations...
Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来解析、生成、转换JSON数据。在Spring MVC框架中,Jackson库通常用于处理HTTP请求和响应中的JSON数据,使得Java对象能够方便地序列化为JSON...
说明:本篇讲的是Jackson的详细用法,Jackson工具类在文章最后,直接复制粘贴即可使用。 Jackson是公司中必用的组件之一,常用的还用阿里的Fastjson,但是由于一些原因bug与漏洞是在是太多,在注重安全的公司直接被...
Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。这个库的主要功能是将Java对象转换为JSON格式,同时也能够将JSON数据转换回Java对象,极大地简化了JSON的序列化和反序列化操作。在给定的...
Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。这个压缩包包含的三个核心组件——`jackson-annotations-2.9.5.jar`、`jackson-core-2.9.5.jar`和`jackson-databind-2.9.5.jar`是Jackson库的...
Jackson包是Java开发中...理解其组件和使用方法,有助于提升项目的开发效率和质量。在实际项目中,应优先使用最新版本的`jackson-databind`、`jackson-core`和`jackson-annotations`,以充分利用其提供的功能和优化。
杰克逊(Jackson)是Java领域中广泛使用的JSON处理库,由 FasterXML 组织开发。这个压缩包包含了Jackson库的三个核心组件的2.2.3版本:`jackson-annotations-2.2.3.jar`、`jackson-core-2.2.3.jar` 和 `jackson-...
Jackson是Java领域中广泛使用的JSON处理库,它的2.7版本是其发展中的一个重要里程碑,提供了许多增强特性和性能优化。Jackson 2.7 jar文件是这个版本的二进制库,包含了处理JSON序列化和反序列化所需的所有类和方法...
赠送jar包:jackson-databind-2.12.3.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、功能丰富的处理JSON的各种工具,包括序列化和反序列化。在Java应用程序中,Jackson库是一个不可或缺的部分,特别是对于那些...
赠送jar包:jackson-databind-2.12.5.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
Jackson是Java领域中广泛使用的JSON处理库,由 FasterXML 社区维护。它提供了一整套高效的工具,用于序列化和反序列化Java对象到JSON格式,以及从JSON数据转换回Java对象。在这个"jackson-core-asl-1.9.13+jackson-...
赠送jar包:jackson-databind-2.13.1.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。