`

Jackson学习二之集合类对象与JSON互相转化

    博客分类:
  • JSON
阅读更多
本篇主要演示如何使用Jackson对List, Map和数组与JSON互相转换.
Java代码  收藏代码
package com.jingshou.jackson; 
 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.Date; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
 
import com.fasterxml.jackson.databind.ObjectMapper; 
import com.jingshou.pojo.Student; 
 
public class JacksonTest2 { 
 
    public static void main(String[] args) throws IOException { 
        Student student1 = new Student();   
        student1.setId(5237); 
        student1.setName("jingshou"); 
        student1.setBirthDay(new Date()); 
         
        Student student3 = new Student();   
        student3.setId(5117);   
        student3.setName("saiya");   
        student3.setBirthDay(new Date());   
         
        ObjectMapper mapper = new ObjectMapper(); 
           
        //Convert between List and JSON 
        List<Student> stuList = new ArrayList<Student>(); 
        stuList.add(student1); 
        stuList.add(student3); 
        String jsonfromList = mapper.writeValueAsString(stuList); 
        System.out.println(jsonfromList); 
         
        //List Type is not required here. 
        List stuList2 = mapper.readValue(jsonfromList, List.class); 
        System.out.println(stuList2);     
        System.out.println("************************************"); 
         
        //Convert Map to JSON 
        Map<String, Object> map = new HashMap<String, Object>(); 
        map.put("studentList", stuList); 
        map.put("class", "ClassName"); 
        String jsonfromMap =  mapper.writeValueAsString(map); 
        System.out.println(jsonfromMap); 
         
        Map map2 =  mapper.readValue(jsonfromMap, Map.class); 
        System.out.println(map2); 
        System.out.println(map2.get("studentList"));     
        System.out.println("************************************");    
         
        //Convert Array to JSON 
        Student[] stuArr = {student1, student3}; 
        String jsonfromArr =  mapper.writeValueAsString(stuArr); 
        System.out.println(jsonfromArr);  
        Student[] stuArr2 =  mapper.readValue(jsonfromArr, Student[].class); 
        System.out.println(Arrays.toString(stuArr2)); 
    } 
 

运行结果:
Text代码  收藏代码
[{"id":5237,"name":"jingshou","birthDay":1389528275987},{"id":5117,"name":"saiya","birthDay":1389528275987}] 
[{id=5237, name=jingshou, birthDay=1389528275987}, {id=5117, name=saiya, birthDay=1389528275987}] 
************************************ 
{"class":"ClassName","studentList":[{"id":5237,"name":"jingshou","birthDay":1389528275987},{"id":5117,"name":"saiya","birthDay":1389528275987}]} 
{class=ClassName, studentList=[{id=5237, name=jingshou, birthDay=1389528275987}, {id=5117, name=saiya, birthDay=1389528275987}]} 
[{id=5237, name=jingshou, birthDay=1389528275987}, {id=5117, name=saiya, birthDay=1389528275987}] 
************************************ 
[{"id":5237,"name":"jingshou","birthDay":1389528275987},{"id":5117,"name":"saiya","birthDay":1389528275987}] 
[Student [birthDay=Sun Jan 12 20:04:35 CST 2014, id=5237, name=jingshou], Student [birthDay=Sun Jan 12 20:04:35 CST 2014, id=5117, name=saiya]] 

再举一例实际应用:
小米网站注册页面输入邮件地址后,服务器提交的Ajax请求是:
https://account.xiaomi.com/pass/user@externalIdBinded?externalId=9999999%40qq.com&type=EM
服务器的返回是: &&&START&&&{"result":"ok","description":"成功","data":{"userId":-1},"code":0}
我们可以尝试用Map去读取后面那一段JSON
Java代码  收藏代码
package com.jingshou.jackson; 
 
import java.io.IOException; 
import java.util.Map; 
 
import com.fasterxml.jackson.core.JsonParseException; 
import com.fasterxml.jackson.databind.JsonMappingException; 
import com.fasterxml.jackson.databind.ObjectMapper; 
 
public class JacksonTest3 { 
 
    public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException { 
        String json = "{\"result\":\"ok\",\"description\":\"成功\",\"data\":{\"userId\":-1},\"code\":0}"; 
        ObjectMapper mapper = new ObjectMapper(); 
        Map map = mapper.readValue(json, Map.class); 
          //输出 {result=ok, description=成功, data={userId=-1}, code=0} 
        System.out.println(map); 
          //输出{userId=-1} 
        Map dataMap = (Map) map.get("data"); 
        System.out.println(dataMap);         
    } 
 


可见以Key-Value形式的JSON字符串,都可以直接使用Map成功读取出来

转自:http://lijingshou.iteye.com/blog/2003059
分享到:
评论

相关推荐

    json 转化工具类

    1. **Jackson库**:Jackson是Java中最常用的JSON库之一,它提供了`ObjectMapper`类来实现JSON与Java对象的转换。例如,可以使用`readValue()`方法将JSON字符串转化为Java对象,`writeValueAsString()`方法将Java对象...

    Java对象与Json之间的互相转换的jar包

    这个"Java对象与Json之间的互相转换的jar包"正是提供了这样的功能。 这个jar包可能包含了如Jackson、Gson、Fastjson等流行的Java JSON库,它们各自提供了丰富的API来方便开发者进行对象与JSON的转换。 1. Jackson...

    JAVA对象转化为JSON

    在Java开发中,将Java对象转化为JSON(JavaScript Object Notation)格式是常见的需求,尤其是在Web服务和前后端数据交互中。JSON是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。JSON...

    解析Json字符串直接转换为对象(包括多层List集合 嵌套)所用jar包

    现在,我们可以使用Jackson库的`ObjectMapper`类将JSON字符串转换为Java对象: ```java import com.fasterxml.jackson.databind.ObjectMapper; public class JsonParser { public static void main(String[] args...

    ResultSet转化为json,json转化为List

    接下来,我们看看如何将JSON转化为List。假设我们已经有了一个JSON字符串,想要将其转换为List&lt;User&gt;: 1. 准备JSON字符串: ```java String jsonString = "[{\"name\":\"Alice\", \"age\":30}, {\"name\":\"Bob\...

    java把list集合转化为json所需的jar包

    在Java开发中,将List集合转化为JSON格式是常见的数据处理需求。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便机器解析和生成。在Java中,我们可以借助第三方库来...

    将集合转换为Json的相关jar包

    通过引入如Jackson、Gson和Fastjson这样的库,开发者能够轻松地处理JSON与Java集合间的相互转换,从而提升应用程序的性能和用户体验。在实际项目中,选择合适的库应考虑性能、易用性和社区支持等因素。

    ssh中将含有级联对象的list转化为json

    总结,SSH框架中将含有级联对象或集合的list转化为JSON,主要涉及Java对象到JSON的转换、EasyUI的数据格式要求以及与前端的数据交互。通过引入和使用Jackson库,我们可以方便地完成这一过程。同时,确保前端能够正确...

    springmvc-jackson-jar包集合

    《Spring MVC与Jackson:构建高效JSON处理》 在现代Web应用开发中,数据交换往往以JSON格式为主,尤其是在前后端分离的设计模式下。Spring MVC作为Java领域的主流MVC框架,提供了一种优雅的方式来处理HTTP请求和...

    使用json-lib将java对象转换成json字符串

    标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...

    SSM框架json使用jackson

    2. **Service层对象转换**:在业务逻辑中,我们可能会用到`ObjectMapper`来手动转换对象,比如将数据库查询结果转化为JSON格式返回给前端。 3. **配置优化**:在Spring的配置文件中,我们可以对Jackson进行定制,...

    jackson2.7.1所有Jar包,SSM返回前端Json数据

    7. **类型绑定**:Jackson的强项之一是类型绑定,它能够处理复杂的数据结构,如嵌套的对象和集合,以及泛型类型,无需额外的适配器或转换器。 8. **性能优化**:Jackson允许进行性能调优,如开启流式处理、启用二...

    JSON字符串和java对象的相互转换

    在Java开发中,JSON字符串与Java对象之间的相互转换是常见的操作,特别是在网络通信、数据存储以及API接口设计等领域。 JSON字符串转Java对象: 在Java中,我们通常使用第三方库如Jackson、Gson、Fastjson等来实现...

    java对象List,Map转json格式

    本篇文章将深入探讨如何将Java中的List和Map对象转化为JSON格式,并涉及与AJAX交互的相关知识。 1. **Java JSON库**: 在Java中,我们可以使用多种库来实现对象到JSON的转换,如Jackson、Gson、Fastjson等。这里以...

    json字符串转成 Map/List

    Jackson是另一个流行的JSON处理库,提供了`ObjectMapper`类来实现JSON与Java对象之间的转换。 ```java import com.fasterxml.jackson.databind.ObjectMapper; import java.util.Map; String jsonString = "{\...

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

    这个模块提供了ObjectMapper类,它是Jackson库中的核心类,负责实现Java对象与JSON之间的相互转换。通过ObjectMapper,我们可以方便地实现POJO(Plain Old Java Object)到JSON字符串的序列化,以及JSON字符串到POJO...

    json-lib 解析json串工具类

    通过`JsonParser.parse(String json)`方法,你可以将JSON格式的文本转化为`JsonNode`对象,然后进一步遍历或操作JSON结构。 3. **生成JSON字符串** 对于Java对象,可以使用`JsonSerializer`将其转换为JSON字符串。...

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

    此外,`ObjectMapper`类是Jackson的核心类,它结合了`JsonParser`和`JsonGenerator`的功能,提供了一种简洁的方式来将Java对象与JSON数据进行映射。 3. **jackson-databind.jar**: 这是Jackson的数据绑定模块,提供...

    ssh将list自定义转化为json

    在SSH(Spring、Struts2、Hibernate)框架中,我们经常需要处理各种数据结构,比如集合List,并将这些数据转化为JSON格式以便于前端展示或进行API交互。JSON(JavaScript Object Notation)是一种轻量级的数据交换...

    json串解析

    - 解析JSON:使用Jackson或Gson的API将JSON字符串转化为Java对象。 - 使用数据:Java对象可以直接在业务逻辑中使用。 - 序列化:如果需要将数据回传,可以将Java对象再转化为JSON字符串。 4. JSON特殊处理: - ...

Global site tag (gtag.js) - Google Analytics