`
pengfeifei26
  • 浏览: 241378 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

jackson 用法

 
阅读更多
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使用方法1

    在本文中,我们将深入探讨Jackson库的基本使用方法,特别是如何将JavaBean对象转换为JSON字符串,并了解如何忽略特定属性。 首先,使用Jackson库进行JSON操作,你需要引入相应的jar包。在标题和描述中提到的,你...

    jackson 使用方法(序列化效率很高)

    在本文中,我们将深入探讨Jackson的使用方法,尤其是它在序列化效率方面表现出的优势。 首先,Jackson的核心组件包括`ObjectMapper`,它是整个框架的入口点,负责将Java对象转换为JSON字符串(序列化)以及将JSON...

    Jackson使用方法1.docx

    本文将详细介绍Jackson的使用方法,包括基本配置、对象转换为JSON字符串、忽略特定属性等核心概念。 首先,要使用Jackson库,你需要在项目中引入三个核心的JAR包: 1. `jackson-annotations-2.2.1.jar`:包含...

    Jackson JSON框架的Util化封装

    《让Jackson JSON生成的数据包含的中文以unicode方式编码》一文的配套代码。文章地址:http://blog.csdn.net/chaijunkun/article/details/8257209

    jackson-annotations、jackson-core、jackson-databind

    在IT行业中,Jackson库是Java领域广泛使用的JSON处理库,特别是在Spring框架中。"jackson-annotations"、"jackson-core"和"jackson-databind"是Jackson库的三个核心模块,它们协同工作,提供了强大的JSON序列化和反...

    Jackson的简单用法

    Jackson是Java领域中广泛使用的JSON处理库,它提供了高效的序列化和反序列化功能,使得Java对象能够轻易地转换为JSON格式,反之亦然。在本文中,我们将深入探讨Jackson库的基本用法,包括如何安装、配置,以及如何将...

    jackson-databind jackson-annatation jackson-core jackson-mapper

    Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、功能丰富的处理JSON的方式,包括序列化和反序列化。在这个包中提到了四个关键组件:"jackson-databind"、"jackson-annotations...

    jackson-core所需的三个包;jackson-databind.jar,jackson-annotations.jar,jackson-core.jar

    Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来解析、生成、转换JSON数据。在Spring MVC框架中,Jackson库通常用于处理HTTP请求和响应中的JSON数据,使得Java对象能够方便地序列化为JSON...

    springboot整合Jackson实例项目-附工具类

    说明:本篇讲的是Jackson的详细用法,Jackson工具类在文章最后,直接复制粘贴即可使用。 Jackson是公司中必用的组件之一,常用的还用阿里的Fastjson,但是由于一些原因bug与漏洞是在是太多,在注重安全的公司直接被...

    jackson-annotations.jar jackson-core.jar jackson-databind.jar

    Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。这个库的主要功能是将Java对象转换为JSON格式,同时也能够将JSON数据转换回Java对象,极大地简化了JSON的序列化和反序列化操作。在给定的...

    jackson-annotations-2.9.5.jar ,jackson-core-2.9.5.jar,jackson-databind-2.9.5.jar

    Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。这个压缩包包含的三个核心组件——`jackson-annotations-2.9.5.jar`、`jackson-core-2.9.5.jar`和`jackson-databind-2.9.5.jar`是Jackson库的...

    Jackson包(适合spring4.X版本的使用)

    Jackson包是Java开发中...理解其组件和使用方法,有助于提升项目的开发效率和质量。在实际项目中,应优先使用最新版本的`jackson-databind`、`jackson-core`和`jackson-annotations`,以充分利用其提供的功能和优化。

    jackson-annotations-2.2.3.jar jackson-core-2.2.3.jar jackson-databind-2.2.3.jar

    杰克逊(Jackson)是Java领域中广泛使用的JSON处理库,由 FasterXML 组织开发。这个压缩包包含了Jackson库的三个核心组件的2.2.3版本:`jackson-annotations-2.2.3.jar`、`jackson-core-2.2.3.jar` 和 `jackson-...

    jackson2.7-jar

    Jackson是Java领域中广泛使用的JSON处理库,它的2.7版本是其发展中的一个重要里程碑,提供了许多增强特性和性能优化。Jackson 2.7 jar文件是这个版本的二进制库,包含了处理JSON序列化和反序列化所需的所有类和方法...

    jackson依赖jar包.

    Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、功能丰富的处理JSON的各种工具,包括序列化和反序列化。在Java应用程序中,Jackson库是一个不可或缺的部分,特别是对于那些...

    Jackson 入门Jackson 入门

    Jackson是Java中广泛使用的JSON处理库,它提供了多种方式来解析和生成JSON数据。以下是关于Jackson入门的关键知识点: 1. **Streaming API**: - Jackson的Streaming API提供了一种低级、高性能的方式来处理JSON,...

    jackson-databind-2.12.5-API文档-中文版.zip

    赠送jar包:jackson-databind-2.12.5.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    jackson-core-asl-1.9.13+jackson-mapper-asl-1.9.13札包

    Jackson是Java领域中广泛使用的JSON处理库,由 FasterXML 社区维护。它提供了一整套高效的工具,用于序列化和反序列化Java对象到JSON格式,以及从JSON数据转换回Java对象。在这个"jackson-core-asl-1.9.13+jackson-...

    jackson-databind-2.13.1-API文档-中文版.zip

    赠送jar包:jackson-databind-2.13.1.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    jackson-annotations-2.2.3.jar(Jackson解析需引入的包)

    `jackson-annotations-2.2.3.jar`需要被添加到Java项目的类路径中,以便在运行时能够访问其中的类和方法。 在实际开发中,为了使用Jackson进行JSON处理,你需要将这个jar文件和其他Jackson的依赖加入到项目中。对于...

Global site tag (gtag.js) - Google Analytics