最近需要解析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生成的数据包含的中文以unicode方式编码》一文的配套代码。文章地址:http://blog.csdn.net/chaijunkun/article/details/8257209
为了方便地处理JSON数据,Java社区提供了多个优秀的JSON库,包括Gson、Fastjson、Jackson和json-lib。这四大JSON库各有特点,适应不同的使用场景。 1. Gson: Gson是Google提供的一个开源库,它能够将Java对象转换...
使用Jackson处理JSON数据有以下关键知识点: 1. **序列化(Serialization)**:将Java对象转换为JSON字符串的过程。使用`ObjectMapper`的`writeValueAsString()`方法可以轻松实现。例如: ```java ObjectMapper ...
本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,我们需要引入Jackson库。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
总的来说,Jackson通过其强大的功能和灵活性,使得在Java应用中处理JSON数据变得简单易行。通过`JacksonTest.java`和`Car.java`示例,我们可以看到Jackson如何无缝地将Java对象与JSON数据进行转换,从而实现数据的...
6. **示例代码**:项目中的示例代码会涵盖各种使用场景,如简单的JavaBean到JSON的转换,复杂类型(如集合和自定义类型)的序列化,以及如何利用流式API处理大文件。通过阅读和运行这些示例,开发者可以快速掌握...
本文将深入探讨如何在Android中使用Jackson进行JSON解析,并通过手打Demo来展示其实用性和高效性。 首先,我们需要引入Jackson库。在`build.gradle`文件中添加依赖: ```groovy dependencies { implementation '...
而Jackson是Java领域中广泛使用的JSON库,它提供了一种高效且灵活的方式来序列化和反序列化Java对象到JSON格式。当MongoDB与Jackson结合时,它们能够共同支持快速、敏捷的接口开发。 在接口开发中,MongoDB可以作为...
接收到的响应通常也是JSON格式,可以使用上述的Jackson或Gson进行解析。 5. **RESTful API开发** 在开发RESTful API时,服务器端通常会使用Spring Boot框架。Spring Boot提供了对JSON的强大支持,比如使用`@...
Jackson是Java领域中广泛使用的JSON处理库,它提供了高效的序列化和反序列化功能,能够将Java对象转换为JSON格式的字符串,同时也能将JSON数据转换回Java对象。在这个小例子中,我们将深入探讨如何使用Jackson进行...
总之,Jackson是Java开发中处理JSON不可或缺的工具,无论是在简单的数据交换还是复杂的序列化场景下,都能展现出强大的功能。学习并熟练掌握Jackson,对于提升开发效率和代码质量具有重要意义。
本篇文章将深入探讨如何使用Jackson在Java中进行JSON操作。 首先,Jackson库主要由三个模块组成: 1. **Jackson-core**: 这是Jackson库的基础模块,包含了基本的JSON流处理API,如`JsonParser`和`JsonGenerator`,...
Jackson框架是Java中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、灵活且功能丰富的API,用于将JSON数据序列化为Java对象,以及将Java对象反序列化为JSON格式。在本篇文章中,我们将深入探讨...
Jackson是Java领域中处理JSON的主流库之一,它提供了高效、功能丰富的API和工具,使得JSON序列化和反序列化变得简单。在这个“json jackson 工具类”中,我们看到对Jackson进行了封装,以便更方便地进行字符串与JSON...
Jackson为Java对象和Json的转换提供了有效的手段,是Web开发不可缺少的工具
Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来解析、生成、序列化和反序列化JSON数据。这个名为"jackson_json转换.zip"的压缩包包含三个关键的Jackson库文件:`jackson-databind-2.2.3....
(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框架是Java中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、灵活的JSON序列化和反序列化功能,使得在Java对象与JSON数据之间进行转换变得简单。这篇博客"Jackson 框架 json 到 复杂 list ...
Jackson是Java领域中广泛使用的JSON处理库,由FasterXML公司开发并维护。它提供了高效、灵活且功能丰富的API,使得在Java应用中解析、生成、操作JSON数据变得简单易行。Jackson分为三个主要模块:core、annotations...