`
zzq19860626
  • 浏览: 264504 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
B20df9e2-fb3d-3644-9f72-c1619842f682
设计模式学习笔记
浏览量:180049
87eaf24f-812a-3463-8e65-e3197d2ad8c2
java虚拟机
浏览量:26623
社区版块
存档分类
最新评论

jackson json的简单使用

    博客分类:
  • java
阅读更多

最近需要解析json数据,以前用json-lib觉得还是可以的,就是有时候不是很方便,然后使用了以下jackson json

结果发现真的很方便。

我需要将list对象转化成json对象,也需要将json 数组转化成List对象。

jackson json 官方地址:http://jackson.codehaus.org/

jackson json 有三种方式转换json数据的操作,

流模式,树模式,数据绑定模式。分别用于不同的环境下,对于我的需求数据绑定模式很简单就可以实现。

user对象代码:

package jackson;

import java.io.Serializable;

/**
 * 
 * @author alaric
 *
 */
public class User  implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Integer id;
	private String username;
	private String password;
	private Integer sex;
	private Integer age;
	private String brithday;
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Integer getSex() {
		return sex;
	}
	public void setSex(Integer sex) {
		this.sex = sex;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getBrithday() {
		return brithday;
	}
	public void setBrithday(String brithday) {
		this.brithday = brithday;
	}
	
	
}

 

 

result对象代码:

package jackson;

import java.io.Serializable;
import java.util.List;

public class Result implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 9121346318498657366L;

	private Integer msgCode;
	private String message;
	private List<User> list;
	public Integer getMsgCode() {
		return msgCode;
	}
	public void setMsgCode(Integer msgCode) {
		this.msgCode = msgCode;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	public List<User> getList() {
		return list;
	}
	public void setList(List<User> list) {
		this.list = list;
	}
	@Override
	public String toString() {
		return "{msgCode:"+msgCode+" message:"+message+" list:"+list.toString()+"}";
	}
	
	
}

 测试代码:

package jackson;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class JacksonTest {

	
	public static Result json2Obj(String json){
	    try {
			ObjectMapper mapper = new ObjectMapper();
			Result result = mapper.readValue(json, Result.class);
			return result;
		} 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();
		}
		return null;
	}
	
	public static String obj2Json(Result result){
		try {
			ObjectMapper mapper= new ObjectMapper();
			String json = mapper.writeValueAsString(result);
			return json ;
		} 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();
		}
		return null;
	}
	
	public static Result getData(){
		Result result = new Result();
		result.setMessage("请求成功");
		result.setMsgCode(1);
		List<User> list = new ArrayList<>();
		User user1= new User();
		user1.setAge(25);
		user1.setBrithday("1986-06-26");
		user1.setId(1);
		user1.setPassword("3424242");
		user1.setSex(2);
		user1.setUsername("zhangsan");
		list.add(user1);
		result.setMessage("请求成功");
		result.setMsgCode(1);
		User user2= new User();
		user2.setAge(25);
		user2.setBrithday("1986-06-26");
		user2.setId(1);
		user2.setPassword("3424242");
		user2.setSex(2);
		user2.setUsername("lisi");
		list.add(user2);
		result.setList(list);
		return result;
	}
	public static void main(String[] args) {
		Result result = getData();
		String json = obj2Json(result);
		
		System.out.println(json);
		result = json2Obj(json);
		List <User> list  = result.getList();
		for(User user:list){
			System.out.println(user.getUsername());
		}
		System.out.println(result.toString());
	}
	
}

 

 

分享到:
评论

相关推荐

    Jackson JSON框架的Util化封装

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

    Java四大json库gson+fastjson+jackson+json-lib

    为了方便地处理JSON数据,Java社区提供了多个优秀的JSON库,包括Gson、Fastjson、Jackson和json-lib。这四大JSON库各有特点,适应不同的使用场景。 1. Gson: Gson是Google提供的一个开源库,它能够将Java对象转换...

    Json 数据格式化 jackson

    使用Jackson处理JSON数据有以下关键知识点: 1. **序列化(Serialization)**:将Java对象转换为JSON字符串的过程。使用`ObjectMapper`的`writeValueAsString()`方法可以轻松实现。例如: ```java ObjectMapper ...

    使用jackson完成json与java对象的互相转换实例

    本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,我们需要引入Jackson库。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    Jackson 框架,轻易转换JSON(转)

    总的来说,Jackson通过其强大的功能和灵活性,使得在Java应用中处理JSON数据变得简单易行。通过`JacksonTest.java`和`Car.java`示例,我们可以看到Jackson如何无缝地将Java对象与JSON数据进行转换,从而实现数据的...

    jackson操作json和javabean示例

    6. **示例代码**:项目中的示例代码会涵盖各种使用场景,如简单的JavaBean到JSON的转换,复杂类型(如集合和自定义类型)的序列化,以及如何利用流式API处理大文件。通过阅读和运行这些示例,开发者可以快速掌握...

    Android JackSon解析JSON

    本文将深入探讨如何在Android中使用Jackson进行JSON解析,并通过手打Demo来展示其实用性和高效性。 首先,我们需要引入Jackson库。在`build.gradle`文件中添加依赖: ```groovy dependencies { implementation '...

    MongoDB与Jackson JSON结合实现接口敏捷开发

    而Jackson是Java领域中广泛使用的JSON库,它提供了一种高效且灵活的方式来序列化和反序列化Java对象到JSON格式。当MongoDB与Jackson结合时,它们能够共同支持快速、敏捷的接口开发。 在接口开发中,MongoDB可以作为...

    Java中使用Json

    接收到的响应通常也是JSON格式,可以使用上述的Jackson或Gson进行解析。 5. **RESTful API开发** 在开发RESTful API时,服务器端通常会使用Spring Boot框架。Spring Boot提供了对JSON的强大支持,比如使用`@...

    Jackson进行json序列化

    Jackson是Java领域中广泛使用的JSON处理库,它提供了高效的序列化和反序列化功能,能够将Java对象转换为JSON格式的字符串,同时也能将JSON数据转换回Java对象。在这个小例子中,我们将深入探讨如何使用Jackson进行...

    json解析利器-jackson

    总之,Jackson是Java开发中处理JSON不可或缺的工具,无论是在简单的数据交换还是复杂的序列化场景下,都能展现出强大的功能。学习并熟练掌握Jackson,对于提升开发效率和代码质量具有重要意义。

    使用Jackson在Java中处理JSON

    本篇文章将深入探讨如何使用Jackson在Java中进行JSON操作。 首先,Jackson库主要由三个模块组成: 1. **Jackson-core**: 这是Jackson库的基础模块,包含了基本的JSON流处理API,如`JsonParser`和`JsonGenerator`,...

    jackson框架解析json

    Jackson框架是Java中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、灵活且功能丰富的API,用于将JSON数据序列化为Java对象,以及将Java对象反序列化为JSON格式。在本篇文章中,我们将深入探讨...

    json jackson 工具类

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

    Jackson进行Java对象和Json转换的简单工具

    Jackson为Java对象和Json的转换提供了有效的手段,是Web开发不可缺少的工具

    jackson_json转换.zip

    Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来解析、生成、序列化和反序列化JSON数据。这个名为"jackson_json转换.zip"的压缩包包含三个关键的Jackson库文件:`jackson-databind-2.2.3....

    jackson-all.jar

    (1)Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。 (2)相比json-lib框架,Jackson所依赖的jar包较少,只需下载:jackson-all-1.6.*.jar ~ jackson-all-1.8.0.jar 任何...

    Jackson 框架 json 到 复杂 list 的转换

    Jackson框架是Java中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、灵活的JSON序列化和反序列化功能,使得在Java对象与JSON数据之间进行转换变得简单。这篇博客"Jackson 框架 json 到 复杂 list ...

    jackson(Java JSON工具库)(3 in 1)

    Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、灵活且功能丰富的API,使得在Java应用中解析、生成、操作JSON数据变得简单易行。Jackson分为三个主要模块:core、annotations...

Global site tag (gtag.js) - Google Analytics