ObjectMapper将josn字符串转化为List

一.利用ObjectMapper将json字符串转为List
Student.java
package objectmapper;
import java.io.Serializable;
public class Student{
private Integer id;
private String sName;
private String sAddress;
private Double sal;
public Student() {
}
public Student(Integer id, String sName, String sAddress, Double sal) {
super();
this.id = id;
this.sName = sName;
this.sAddress = sAddress;
this.sal = sal;
}
//get/set
}
ZcjUser.java
package objectmapper;public class ZcjUser implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String message;
private Date sendTime;
// 这里手写字母大写,只是为了测试使用,是不符合java规范的
private String NodeName;
private List<Integer> intList;
private List<Student> studentList;
public ZcjUser(int id, String message, Date sendTime) {
super();
this.id = id;
this.message = message;
this.sendTime = sendTime;
}
//get/set
}
Test.java
package objectmapper;public class Test {
public static ObjectMapper mapper = new ObjectMapper();
static {
// 转换为格式化的json
mapper.enable(SerializationFeature.INDENT_OUTPUT);
// 如果json中有新增的字段并且是实体类类中不存在的,不报错
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
public static void main(String[] args) throws Exception {
testObj();
}
public static void testObj() throws JsonGenerationException, JsonMappingException, IOException {
ZcjUser user = new ZcjUser(1, "Hello World", new Date());
List<Integer> intList = new ArrayList<>();
intList.add(11);
intList.add(22);
intList.add(33);
user.setIntList(intList);
List<Student> sList = new ArrayList<>();
Student s1 = new Student(1, "zs", "四川", 111.1);
Student s2 = new Student(2, "ls", "成都", 222.2);
Student s3 = new Student(3, "ww", "兴隆湖", 333.3);
sList.add(s1);
sList.add(s2);
sList.add(s3);
user.setStudentList(sList);
List<ZcjUser> userList = new ArrayList<>();
userList.add(user);
mapper.writeValue(new File("D:/test3.txt"), userList); // 写到文件中
List<ZcjUser> lendReco = mapper.readValue(new File("D:/test3.txt"),new TypeReference<List<ZcjUser>>() { });
System.out.println(lendReco.get(0).getStudentList().get(0).getsName());
}
}
test3.txt
[ {
"id" : 1,
"message" : "Hello World",
"sendTime" : 1557823326329,
"intList" : [ 11, 22, 33 ],
"studentList" : [ {
"id" : 1,
"sName" : "zs",
"sAddress" : "四川",
"sal" : 111.1
}, {
"id" : 2,
"sName" : "ls",
"sAddress" : "成都",
"sal" : 222.2
}, {
"id" : 3,
"sName" : "ww",
"sAddress" : "兴隆湖",
"sal" : 333.3
} ],
"nodeName" : null
} ]
二。利用JSONArray将json字符串转List
Test.java
public class Test {
public static void main(String[] args) throws Exception {
testObj();
}
public static void testObj() throws JsonGenerationException, JsonMappingException, IOException {
String jsonStr = FileUtils.readFileToString(new File("D:/test3.txt"), "utf-8");
Map<String,Class<Student>> map = new HashMap<String,Class<Student>>();
// studentList 为ZcjUser的属性
map.put("studentList", Student.class);
JSONArray array = JSONArray.fromObject(jsonStr);
List<ZcjUser> list2 = (List<ZcjUser>) JSONArray.toList(array, ZcjUser.class,map);
System.out.println(list2.get(0).getStudentList().get(0).getsName());
}
}
ObjectMapper将josn字符串转化为List的更多相关文章
- 将十六进制的字符串转化为UIImage
最近写一个项目,有验证码,但是接口返回的并不是验证码图片的URL,而是返回的字节数组16进制字符串.这样就需要把16进制字符串首先字节数组,其次再把字节数组转化为NSData,最后再把NSData转化 ...
- SQL Server中字符串转化为GUID的标量函数实现
还是工作中遇到的需求,有时候和外部的系统对接,进行数据的核对功能,外部的系统有时候主键字段列数据类是UNIQUEIDENTIFER(GUID)类型的字符串格式,去除了GUID格式中的分隔符“- ...
- jq 解析josn字符串
1. var obj = jQuery.parseJSON("${ruleModel.rules}"); 2. var obj = eval("("+" ...
- nodejs将JSON字符串转化为JSON对象
如何将JSON字符串转化为JSON对象? JSON.parse(str) JSON是javascript的一个内置对象,提供了转换JSON对象与字符串互相转换的方法: 问题来了,道理我都懂 ...
- python 字符串转化为json、post请求
在json模块有2个方法, loads():将json数据转化成dict数据 dumps():将dict数据转化成json数据 load():读取json文件数据,转成dict数据 dump():将d ...
- 一个将lambda字符串转化为lambda表达式的公共类
一个将lambda字符串转化为lambda表达式的公共类.StringToLambda 使用方式如下: var module = new Module(); url = url.ToLower();/ ...
- Java序列化对象为字符串并将字符串反序列化为对象
对象的序列化与反序列化其实就是将对象的状态保存下来,一般是保存到文件中,但是其实更常用的是将对象序列化为字符串保存到数据库中,然后在需要读取对象的情况下将字符串反序列化为对象. 可以序列化的类必须 ...
- Swift中字符串转化为Class的方法
Swift中字符串转化为Class的方法 在开发中有时候会根据字符串进行对应类的转化,这样我们就可以动态根据服务器返回的字段,动态的加载类,比如优酷,微博等APP会在节假日等动态的TabBar.这样可 ...
- 将JSON字符串反序列化为指定的.NET对象类型
目录导航: 前言: 方法一.在项目中定义对应的对象参数模型,用于映射反序列化出来的参数(复杂JSON字符串数据推荐使用): 方法二.直接将JSON字符串格式数据反序列化转化为字典数据(简单JSON字符 ...
随机推荐
- 线程池的介绍和使用,以及基于jvmti设计非入侵监控
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 五常大米好吃! 哈哈哈,是不你总买五常大米,其实五常和榆树是挨着的,榆树大米也好吃, ...
- matplotlib的学习15-次坐标轴
import matplotlib.pyplot as plt import numpy as np x = np.arange(0, 10, 0.1) y1 = 0.05 * x**2 y2 = - ...
- 注解 @CrossOrigin
在Controller中看到@CrossOrigin ,这是什么?有什么用?为什么要用? what? @CrossOrigin是用来处理跨域请求的注解 先来说一下什么是跨域: (站在巨人的肩膀上) 跨 ...
- python 字符串拼接 + 与 join 的区别
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 python在进行字符串的拼接时,一般有两种方法,一种是使用+直接相加,另一种是使用join a = ...
- ADF 第六篇:Copy Data Activity详解
在Azure 数据工程中,可以使用Copy Data 活动把数据从on-premises 或云中复制到其他存储中.Copy Data 活动必须在一个IR(Integration Runtime)上运行 ...
- python之把列表当做队列使用
把列表当做队列使用,只是在列表中第一个加入的元素,第一个提取出来,拿列表当做队列用,效率并不高.在列表中最后添加或者删除元素速度很快,然而从列表里插入或者从头弹出速度却不快,因为其他所有元素都要一个一 ...
- 磁盘配额,通过ManagementClass("Win32_DiskQuota")
C# using System; using System.Collections.Generic; using System.Management; namespace ConsoleApp2 { ...
- 【mybatis-plus】什么是乐观锁?如何实现“乐观锁”
"乐观锁"这个词以前我也没听过.上次在测试需求的时候,查询数据库发现有一个version字段,于是请教开发这个字干嘛使, 人家回复我:乐观锁,解决并发更新用的.当时大家都忙,咱也不 ...
- Android猜数字大小游戏
功能介绍:该程序能够提示猜大了猜小了,并且对空白输入处理,还对猜测次数限制,提供重置功能. 1.先看界面,一个输入框EditText,两个Button 2.界面设计 activity_main2.x ...
- ArrayListHashmap嵌套
package arrayListHashMap; import java.util.ArrayList; import java.util.HashMap; import java.util.Map ...