`
shuai1234
  • 浏览: 978048 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

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

    博客分类:
  • java
 
阅读更多

本篇主要演示如何使用Jackson对List, Map和数组与JSON互相转换.

Java代码  收藏代码
  1. package com.jingshou.jackson;  
  2.   
  3. import java.io.IOException;  
  4. import java.util.ArrayList;  
  5. import java.util.Arrays;  
  6. import java.util.Date;  
  7. import java.util.HashMap;  
  8. import java.util.List;  
  9. import java.util.Map;  
  10.   
  11. import com.fasterxml.jackson.databind.ObjectMapper;  
  12. import com.jingshou.pojo.Student;  
  13.   
  14. public class JacksonTest2 {  
  15.   
  16.     public static void main(String[] args) throws IOException {  
  17.         Student student1 = new Student();    
  18.         student1.setId(5237);  
  19.         student1.setName("jingshou");  
  20.         student1.setBirthDay(new Date());  
  21.           
  22.         Student student3 = new Student();    
  23.         student3.setId(5117);    
  24.         student3.setName("saiya");    
  25.         student3.setBirthDay(new Date());    
  26.           
  27.         ObjectMapper mapper = new ObjectMapper();  
  28.             
  29.         //Convert between List and JSON  
  30.         List<Student> stuList = new ArrayList<Student>();  
  31.         stuList.add(student1);  
  32.         stuList.add(student3);  
  33.         String jsonfromList = mapper.writeValueAsString(stuList);  
  34.         System.out.println(jsonfromList);  
  35.           
  36.         //List Type is not required here.  
  37.         List stuList2 = mapper.readValue(jsonfromList, List.class);  
  38.         System.out.println(stuList2);      
  39.         System.out.println("************************************");  
  40.           
  41.         //Convert Map to JSON  
  42.         Map<String, Object> map = new HashMap<String, Object>();  
  43.         map.put("studentList", stuList);  
  44.         map.put("class""ClassName");  
  45.         String jsonfromMap =  mapper.writeValueAsString(map);  
  46.         System.out.println(jsonfromMap);  
  47.           
  48.         Map map2 =  mapper.readValue(jsonfromMap, Map.class);  
  49.         System.out.println(map2);  
  50.         System.out.println(map2.get("studentList"));      
  51.         System.out.println("************************************");     
  52.           
  53.         //Convert Array to JSON  
  54.         Student[] stuArr = {student1, student3};  
  55.         String jsonfromArr =  mapper.writeValueAsString(stuArr);  
  56.         System.out.println(jsonfromArr);   
  57.         Student[] stuArr2 =  mapper.readValue(jsonfromArr, Student[].class);  
  58.         System.out.println(Arrays.toString(stuArr2));  
  59.     }  
  60.   
  61. }  

 运行结果:

Text代码  收藏代码
  1. [{"id":5237,"name":"jingshou","birthDay":1389528275987},{"id":5117,"name":"saiya","birthDay":1389528275987}]  
  2. [{id=5237, name=jingshou, birthDay=1389528275987}, {id=5117, name=saiya, birthDay=1389528275987}]  
  3. ************************************  
  4. {"class":"ClassName","studentList":[{"id":5237,"name":"jingshou","birthDay":1389528275987},{"id":5117,"name":"saiya","birthDay":1389528275987}]}  
  5. {class=ClassName, studentList=[{id=5237, name=jingshou, birthDay=1389528275987}, {id=5117, name=saiya, birthDay=1389528275987}]}  
  6. [{id=5237, name=jingshou, birthDay=1389528275987}, {id=5117, name=saiya, birthDay=1389528275987}]  
  7. ************************************  
  8. [{"id":5237,"name":"jingshou","birthDay":1389528275987},{"id":5117,"name":"saiya","birthDay":1389528275987}]  
  9. [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代码  收藏代码
  1. package com.jingshou.jackson;  
  2.   
  3. import java.io.IOException;  
  4. import java.util.Map;  
  5.   
  6. import com.fasterxml.jackson.core.JsonParseException;  
  7. import com.fasterxml.jackson.databind.JsonMappingException;  
  8. import com.fasterxml.jackson.databind.ObjectMapper;  
  9.   
  10. public class JacksonTest3 {  
  11.   
  12.     public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {  
  13.         String json = "{\"result\":\"ok\",\"description\":\"成功\",\"data\":{\"userId\":-1},\"code\":0}";  
  14.         ObjectMapper mapper = new ObjectMapper();  
  15.         Map map = mapper.readValue(json, Map.class);  
  16.           //输出 {result=ok, description=成功, data={userId=-1}, code=0}  
  17.         System.out.println(map);  
  18.           //输出{userId=-1}  
  19.         Map dataMap = (Map) map.get("data");  
  20.         System.out.println(dataMap);          
  21.     }  
  22.   
  23. }  

 

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

分享到:
评论

相关推荐

    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...

    解析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对象转化为JSON

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

    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等。这里以...

    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字符串。...

    json字符串转成 Map/List

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

    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