Jackson学习二之集合类对象与JSON互相转化
来源:互联网 发布:数据库管理器 编辑:程序博客网 时间:2024/05/21 01:27
本篇主要演示如何使用Jackson对List, Map和数组与JSON互相转换.
- 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));
- }
- }
运行结果:
- [{"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
- 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成功读取出来
本文出自"lijingshou"博客,转载请务必保留此出处http://lijingshou.iteye.com/blog/20
阅读全文
0 0
- Jackson学习二之集合类对象与JSON互相转化
- Jackson学习对象与JSON互相转化
- Jackson学习一之对象与JSON互相转化
- Jackson学习一之对象与JSON互相转化
- Jackson学习一之对象与JSON互相转化
- kson学习一之对象与JSON互相转化
- jackson 将对象,集合转化为json
- json字符串与json对象互相转化
- Java对象与Json对象的相互转化之Jackson实现方式
- 基于jackson的json与对象互相转换
- Jackson(一):java对象与json字符串互相转换
- JSON解析类库之Jackson(1) --- Jackson类库学习, 生成与解析json数据,json字符串与Java对象互转
- JS中json对象与json字符串互相转化
- Python之dict(或对象)与json之间的互相转化
- 使用springMVC注解@ResponseBody与jackson工具类在ajax请求中实现对象与json之间的相互转化
- 使用springMVC注解@ResponseBody与jackson工具类在ajax请求中实现对象与json之间的相互转化
- Java对象和集合与Json之间的互相转换
- Jackson实现json与java的转化
- # 与 $ 区别以及 sql 预编译
- SVM中的训练算法:序列最小最优化算法SMO的读书笔记
- code forces Help Vasilisa the Wise 2
- LeetCode 分类练习(5)—— 链表相关习题(1)
- 关于storyboard和xib创建控制器
- Jackson学习二之集合类对象与JSON互相转化
- 环形队的基本操作(C语言)
- MyBatis之statementType="STATEMENT"的使用
- 输入输出函数
- 分治法--“自顶向下,逐步求精”的程序设计方法
- Android设置透明、半透明等效果
- 正则表达式
- Shiro原理以及运行流程
- java中静态变量和成员变量的区别?