JSON 和 POJO 互转,List<T> 和 JSON 互转
JSON 和 POJO
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 对象POJO和JSON互转
*
* @author mxn
* @create 2018-09-05 14:35
*/
public class JsonUtil {
public static final Logger logger = LoggerFactory.getLogger(JsonUtil.class);
/**
* JSON 转 POJO
* @param pojo
* @param tClass
* @param <T>
* @return
*/
public static <T> T getObject(String pojo, Class<T> tClass) {
try {
return JSONObject.parseObject(pojo, tClass);
} catch (Exception e) {
logger.error(tClass + "转 JSON 失败");
}
return null;
}
/**
* pojo 转json
* @param tResponse
* @param <T>
* @return
*/
public static <T> String getJson(T tResponse) {
String pojo = JSONObject.toJSONString(tResponse);
return pojo;
}
}
List 和 JSON
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import java.util.List;
/**
* List集合和JSON互转工具类
* @author mxn
* @create 2018-09-05 14:45
*/
public class JsonListUtil {
/**
* List<T> 转 json
* @param ts
* @param <T>
* @return
*/
public static <T> String listToJson(List<T> ts){
return JSON.toJSONString(ts);
}
/**
* json 转 List<T>
* @param jsonStr
* @param tClass
* @param <T>
* @return
*/
public static <T> List<T> jsonToList(String jsonStr, Class<T> tClass) {
return JSONArray.parseArray(jsonStr, tClass);
}
}
测试#
POJO和JSON
import org.junit.Test;
import org.seckill.entity.Seckill;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author mxn
* @create 2018-09-05 14:40
*/
public class JsonUtilTest {
public static final Logger logger = LoggerFactory.getLogger(JsonUtilTest.class);
@Test
public void method1() {
Seckill seckill = new Seckill();
seckill.setName("Iphone X");
String json = JsonUtil.getJson(seckill);
logger.info("JsonUtilTest.method1 info={}",json);
Seckill object = JsonUtil.getObject(json, Seckill.class);
logger.info("JsonUtilTest.method1 info={}",object.getName());
}
}
List 和 JSON
import org.junit.Before;
import org.junit.Test;
import org.seckill.entity.Seckill;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
/**
* @author mxn
* @create 2018-09-05 14:48
*/
public class JsonListUtilTest {
public static final Logger logger = LoggerFactory.getLogger(JsonListUtilTest.class);
private List<Seckill> list = new ArrayList<Seckill>();
private String jsonStr;
@Before
public void beforeMethod() {
for (int i = 0; i < 5; i++) {
Seckill seckill = new Seckill();
seckill.setName("iphone " + i);
list.add(seckill);
}
jsonStr = "[{\"name\":\"iphone 0\",\"number\":0,\"seckillId\":0},{\"name\":\"iphone 1\",\"number\":0,\"seckillId\":0},{\"name\":\"iphone 2\",\"number\":0,\"seckillId\":0},{\"name\":\"iphone 3\",\"number\":0,\"seckillId\":0},{\"name\":\"iphone 4\",\"number\":0,\"seckillId\":0}]";
}
@Test
public void method() {
String s = JsonListUtil.listToJson(list);
logger.info("JsonListUtilTest.method info={}",s);
}
@Test
public void method2() {
List<Seckill> seckills = JsonListUtil.jsonToList(jsonStr, Seckill.class);
for (Seckill seckill : seckills) {
logger.info("JsonListUtilTest.method2 info={}",seckill.getName());
}
}
}
POJO
import java.util.Date;
/**
* @author mxn
* @create 2018-05-17 15:36
*/
public class Seckill {
private long seckillId;
private String name;
private int number;
private Date startTime;
private Date endTime;
private Date createTime;
public long getSeckillId() {
return seckillId;
}
public void setSeckillId(long seckillId) {
this.seckillId = seckillId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return "Seckill{" +
"seckillId=" + seckillId +
", name='" + name + '\'' +
", number=" + number +
", startTime=" + startTime +
", endTime=" + endTime +
", createTime=" + createTime +
'}';
}
}
JSON 和 POJO 互转,List<T> 和 JSON 互转的更多相关文章
- Json、JavaBean、Map、XML之间的互转
思路是JavaBean.Map.XML都可以用工具类很简单的转换为Json,进而实现互相转换 1.Map.XML与Json互转 mvn依赖 <dependency> <groupId ...
- 总结的一些json格式和对象/String/Map/List等的互转工具类
总结的一些json格式和对象/String/Map/List等的互转工具类,有需要的可以看看,需要引入jackson-core-asl-1.7.1.jar.jackson-jaxrs-1.7.1.ja ...
- json转字符串,json转list,json转pojo的工具类
package com.loveshop.util; import java.util.List; import com.fasterxml.jackson.core.JsonProcessingEx ...
- 转载-------- JSON 与 对象 、集合 之间的转换 JSON字符串和java对象的互转【json-lib】
转载--*--*---- 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,J ...
- json与list,map,String之间的互转
package tools; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import j ...
- JSON转JS对象,JS对象转JSON
一.从服务端发来的json字符串,怎么才能作为JavaScript对象(JSON对象)在web端调用呢? 1.如果使用jQuery,就很方便了,可以在ajax一系列函数中,把参数Datatype传js ...
- ajax 发送json数据时为什么需要设置contentType: "application/json”
1. ajax发送json数据时设置contentType: "application/json”和不设置时到底有什么区别? contentType: "application/j ...
- ajax发送json数据时为什么需要设置contentType: "application/json”
1. ajax发送json数据时设置contentType: "application/json”和不设置时到底有什么区别?contentType: "application/js ...
- json数组转普通数组 普通数组转json数组
1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行 ...
随机推荐
- STL测试3)优先级队列实现二叉堆
用法: big_heap.empty();判断堆是否为空 big_heap.pop();弹出栈顶元素最大值 big_heap.push(x);将x添加到最大堆 big_heap.top();返回栈顶元 ...
- mysql Unknown error 1146
错误提示:Couldn't acquire next trigger: Unknown error 1146 spring +quartz 实现任务调度,由于quartz 默认读取表名为大写,新建数据 ...
- drf请求、响应与视图
目录 一.请求 1 定义 2 常用属性 1).data 2).query_params 二.响应 1 Response 2 构造方法 3 状态码 1)信息告知 - 1xx 2)成功 - 2xx 3)重 ...
- java 面向对象(十五):面向对象的特征三:多态性
1.多态性的理解:可以理解为一个事物的多种形态.2.何为多态性:对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)举例:Person p = new Man();Object obj ...
- 数据可视化基础专题(八):Pandas基础(七) 数据清洗与预处理相关
1.数据概览 第一步当然是把缺失的数据找出来, Pandas 找缺失数据可以使用 info() 这个方法(这里选用的数据源还是前面一篇文章所使用的 Excel ,小编这里简单的随机删除掉几个数据) i ...
- BFC 生成 特性 解决的问题
BFC( 块级格式化上下文 ) 块级格式化上下文,它是指一个独立的块级渲染区域, 只有 Blocklevel BOX 参与,该区域拥有一套 渲染规则来约束块级盒子的布局,且与区域外部无关. 如何生成 ...
- OSCP Learning Notes - Information Gathering
Common Tools Google Exploit-DB/Google Hacking DB WHOIS Netcraft theharvester Example: Google search: ...
- c# Winfrom-DataGridView实现筛选功能
//应对用户需求,需要在DataGridView中直接进行筛选功能,在网上找了一些代码加上自己修改整理过后的类,仅供参考! //上面代码可以直接创建类库项目生成DLL文件,下面代码为另外项目引用创 ...
- 题解 UVA1193 Radar Installation
原题 PDF OJ 思路 分析 因为半径d已经确定,所以对于每个点,我们可以算出它在x 轴上的覆盖位置线段LR,如图. 此问题便转为: 对于 n 个区间,每个区间内至少有1个点,求最少点数. 算法 我 ...
- 题解 洛谷 P4694 【[PA2013]Raper】
首先考虑题目的性质,不难发现光盘的花费是一个凸函数.当生产 \(0\) 张光盘时,其花费为 \(0\),随着光盘生产数的增加,最优情况肯定是先选择工厂便宜的时刻,所以花费会增长越来越快,因此其为一个下 ...