一.利用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的更多相关文章

  1. 将十六进制的字符串转化为UIImage

    最近写一个项目,有验证码,但是接口返回的并不是验证码图片的URL,而是返回的字节数组16进制字符串.这样就需要把16进制字符串首先字节数组,其次再把字节数组转化为NSData,最后再把NSData转化 ...

  2. SQL Server中字符串转化为GUID的标量函数实现

        还是工作中遇到的需求,有时候和外部的系统对接,进行数据的核对功能,外部的系统有时候主键字段列数据类是UNIQUEIDENTIFER(GUID)类型的字符串格式,去除了GUID格式中的分隔符“- ...

  3. jq 解析josn字符串

    1. var obj = jQuery.parseJSON("${ruleModel.rules}"); 2. var obj = eval("("+" ...

  4. nodejs将JSON字符串转化为JSON对象

    如何将JSON字符串转化为JSON对象? JSON.parse(str)       JSON是javascript的一个内置对象,提供了转换JSON对象与字符串互相转换的方法: 问题来了,道理我都懂 ...

  5. python 字符串转化为json、post请求

    在json模块有2个方法, loads():将json数据转化成dict数据 dumps():将dict数据转化成json数据 load():读取json文件数据,转成dict数据 dump():将d ...

  6. 一个将lambda字符串转化为lambda表达式的公共类

    一个将lambda字符串转化为lambda表达式的公共类.StringToLambda 使用方式如下: var module = new Module(); url = url.ToLower();/ ...

  7. Java序列化对象为字符串并将字符串反序列化为对象

    对象的序列化与反序列化其实就是将对象的状态保存下来,一般是保存到文件中,但是其实更常用的是将对象序列化为字符串保存到数据库中,然后在需要读取对象的情况下将字符串反序列化为对象.   可以序列化的类必须 ...

  8. Swift中字符串转化为Class的方法

    Swift中字符串转化为Class的方法 在开发中有时候会根据字符串进行对应类的转化,这样我们就可以动态根据服务器返回的字段,动态的加载类,比如优酷,微博等APP会在节假日等动态的TabBar.这样可 ...

  9. 将JSON字符串反序列化为指定的.NET对象类型

    目录导航: 前言: 方法一.在项目中定义对应的对象参数模型,用于映射反序列化出来的参数(复杂JSON字符串数据推荐使用): 方法二.直接将JSON字符串格式数据反序列化转化为字典数据(简单JSON字符 ...

随机推荐

  1. 深入解析 C# 的 String.Create 的方法

    作者:Casey McQuillan 译者:精致码农 原文:http://dwz.win/YVW 说明:原文比较长,翻译时精简了很多内容,对于不重要的细枝末节只用了一句话概括,但不并影响阅读. 你还记 ...

  2. 移动端 canvas统计图

    一.折线图 1. 获取画布画笔 2. 封装画线的方法 3. 画坐标轴 4. 循环数据画横轴 > 4.1 画刻度 > 4.2 刻度文字 > 4.3 画折线 > 4.4 画点 5. ...

  3. redis 五种常见攻击方法

    如果需要大佬写好的脚本,可以直接去github上面搜 参考文章:https://www.cnblogs.com/wineme/articles/11731612.html    https://www ...

  4. angular8 大地老师学习笔记

    第一课: angular 创建项目命令: ng new 项目名称 创建组件: ng g 可查看所有创建的对象  ,ng g component  components/home  创建组件,后面跟的是 ...

  5. 30G 上亿数据的超大文件,如何快速导入生产环境?

    Hello,大家好,我是楼下小黑哥~ 如果给你一个包含一亿行数据的超大文件,让你在一周之内将数据转化导入生产数据库,你会如何操作? 上面的问题其实是小黑哥前段时间接到一个真实的业务需求,将一个老系统历 ...

  6. iOS 集成友盟分享图片链接为http时无法加载问题解决

    一.问题描述 UMShareWebpageObject *obj = [UMShareWebpageObject shareObjectWithTitle:title descr:shareText ...

  7. 【mybatis-plus】主键id生成、字段自动填充

    一.主键id的生成 数据库表里通常都会有一个主键id,来作为这条数据的唯一标识. 常见的方式 数据库自动增长 这种很常见了,可以做到全库唯一.因为id是天然排序的,对于涉及到排序的操作会很方便. UU ...

  8. MongoDB用户权限操作语法及示例

    1.创建用户 1.1.语法格式: 1.1.1.格式及例子 >db.createUser( { user: "<name>", pwd: "<cle ...

  9. java数组之system.arrayCopy

    public class ArrayDemo { /* public static void main(String[] args) { int[] a=new int[4]; int[] b=new ...

  10. 风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击

    风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击 XSS钓鱼攻击 HTTP Basic Authentication认证 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息. 但是有时候 ...