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

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

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

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

    json jackson 工具类

    对 jackson json 进行了封装,可以实现 string-&gt;json 的互转,包括简单对象的互转和复杂对象的互转

    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处理.rar

    相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。而且Jackson社区相对比较活跃,更新速度也比较快。 一、准备工作 1、 下载依赖库jar包 Jackson的jar all下载地址:...

    json字符串实体bean或者List互转(gson和jackson,支持泛型)

    json字符串实体bean或者List互转(gson和jackson,支持泛型),支持json的格式化,所需要的包在代码也有说明。还有少的可以告知我,谢谢

    protobuf-vs-jackson:比较协议缓冲区3与Jackson JSON的快速基准测试

    基准测试-Protcol Buffers 3 vs Jackson JSON 这是Jackson(w / Afterburner)与协议缓冲区版本3之间性能和大小的简单比较。 我遇到将两者进行了比较,结果显示PB的性能较差,在某些测试中速度慢了近2倍。 我最初...

    jsonschema2pojo:从JSON或JSON Schema生成Java类型,并注释这些类型以便与Jackson,Gson等进行数据绑定

    jsonschema2pojo从JSON模式(或示例JSON)生成Java类型,并可以注释这些类型以便与Jackson 1.x,Jackson 2.x或Gson进行数据绑定。 注意:在0.5.1和1.0.0之间存在重大变化。 检查。 1.0.0 Alpha,Beta和最终版本中...

    com.fasterxml.jackson

    通常来说,我们在日常开发中使用的是第3种方式,有时为了简便也会使用第2种方式,比如你要从一个很大的Json对象中只读取那么一两个字段的时候,采用databind方式显得有些重,JsonNode反而更简单。 作者:无知者云 ...

    jackson-databind-3.0.0.jar下载

    jackson-databind基于Jackson核心库构建,以简单易用和高性能著称,是目前最流行的JSON库之一。 jackson-databind的主要功能有: 1. ObjectMapper:jackson-databind的核心类,用于转换Java对象和JSON。使用简单,一般就一...

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

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

    gson,fastjson,jackson简单使用

    gson,fastjson,jackson的简单使用

    jackson-serialization-examples:常用的Java JSON序列化示例

    Java和JSON-使用ObjectMapper的Jackson示例 该存储库包含博客文章中使用的代码示例。 单击链接以获取有关示例的所有信息。 内容 该代码包含以下示例,所有这些示例均在同一JUnit测试中,您可以实际看到期望的输出...

    在线 JSON 转 POJO ,超简单实用.zip

    在线 JSON 转 POJO ,超简单实用.zip,Generate Java types from JSON or JSON Schema and annotates those types for data-binding with Jackson, Gson, etc

    json-view:Jackson 的程序化 JSON 视图

    程序化 JSON 视图在使用 Jackson 序列化对象时,是否需要以编程方式包含或排除字段? 好吧,如果你有那么你现在可能知道这是非常困难的。 Jackson 本质上是非常声明式的(所有内容的注释!),因此以编程方式执行...

    jackson的一个简单的Demo

    Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。

    处理json数据的四种框架

    java有很多种处理json格式数据的框架,包括Gson,fastJson,Jackson,Json-lib,Json2014,都是源码,通过http请求获取对应的json,然后通过bean转化成对象。Jackson是最麻烦的,要使用ObjectMapper mapper。Gson和...

    Jackson工具类

    Jackson是一个Java用来处理json格式数据的类库,性能非常好,使用非常简单。包含四个jar包:jackson-annotations-2.2.2.jar, jackson-core-2.2.2.jar, jackson-databind-2.2.2.jar, jackson-dataformat-xml-2.2.2...

    jackson-js:使用装饰器JavaScript对象序列化和反序列化库。 它还支持高级对象概念,例如多态性,对象标识和循环对象

    对于简单的情况,您当然不需要此库,您可以仅使用JSON.parse和JSON.stringify来序列化/反序列化JSON。 使用jackson-js ,您可以使用装饰器(例如@JsonProperty() , @JsonFormat() , @JsonIgnore()轻松地操作...

Global site tag (gtag.js) - Google Analytics