一.利用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. 08-flask-使用pymysql

    代码 from flask import Flask from flask import render_template import pymysql # 创建flask对象 app = Flask( ...

  2. Flink问题1

    flink问题1 报错: More buffers requested available than totally available 查看源码: /** * This method makes s ...

  3. spring的基础面试内容

    1.什么是spring? Spring 是个Java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring 框架目标是简化Java ...

  4. matplotlib的学习8-scatter散点图

    import matplotlib.pyplot as plt import numpy as np n = 1024 # data size #生成1024个呈标准正太分布的二维数组(平均数为0,方 ...

  5. 在python中元组与列表的区别及序列解包

    一. 元组与列表的区别 元组中的数据一旦定义就不允许更改. 元组没有append().extend()和insert()等方法,无法向元组中添加元素. 元组没有remove()或pop()方法,也无法 ...

  6. 获取Web项目中的控制器类以及类中Action方法

    前言 在使用时需要修改命名空间.需要过滤控制器.需要过滤Action方法.结果生成表的插入语句. 代码 public ActionResult ReloadData() { #region 获取所有的 ...

  7. PHP7.4.3的BUG导致微信公众号CURl上传文件的412错误

    https://segmentfault.com/q/1010000021407039 升级PHP就好了 https://segmentfault.com/q/1010000021407039

  8. 【基础】CentOS6如何将命令行模式下安装图形界面

    系统版本:这里我使用的系统是CentOS6.9 安装方式:安装方式为yum源安装 1.配置yum源仓库 # 在配置之前最好把我们自己的yum仓库文件备份一下: cp /etc/yum.repos.d/ ...

  9. 使用CDN后如何配置Apache使其记录访客真实IP

    今天想看看哪些地区的人访问过我的网站,于是打开Apache网站响应日志,把访客IP复制到百度,发现搜到的全部都是我是用的CDN的节点IP,真实的访客IP并没有被记录. 如图所示,上面的103.45.7 ...

  10. 2.k8sPod、控制器、service

    一.Pod生命周期 Pod是k8s中最小的管理单元(逻辑上存在,实际不存在),是一组容器的集合 同一个Pod中的容器共享网络和存储(通过pause容器实现),由一个统一的IP向集群内部提供服务 Pod ...