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 互转的更多相关文章

  1. Json、JavaBean、Map、XML之间的互转

    思路是JavaBean.Map.XML都可以用工具类很简单的转换为Json,进而实现互相转换 1.Map.XML与Json互转 mvn依赖 <dependency> <groupId ...

  2. 总结的一些json格式和对象/String/Map/List等的互转工具类

    总结的一些json格式和对象/String/Map/List等的互转工具类,有需要的可以看看,需要引入jackson-core-asl-1.7.1.jar.jackson-jaxrs-1.7.1.ja ...

  3. json转字符串,json转list,json转pojo的工具类

    package com.loveshop.util; import java.util.List; import com.fasterxml.jackson.core.JsonProcessingEx ...

  4. 转载-------- JSON 与 对象 、集合 之间的转换 JSON字符串和java对象的互转【json-lib】

    转载--*--*---- 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,J ...

  5. json与list,map,String之间的互转

    package tools; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import j ...

  6. JSON转JS对象,JS对象转JSON

    一.从服务端发来的json字符串,怎么才能作为JavaScript对象(JSON对象)在web端调用呢? 1.如果使用jQuery,就很方便了,可以在ajax一系列函数中,把参数Datatype传js ...

  7. ajax 发送json数据时为什么需要设置contentType: "application/json”

    1. ajax发送json数据时设置contentType: "application/json”和不设置时到底有什么区别? contentType: "application/j ...

  8. ajax发送json数据时为什么需要设置contentType: "application/json”

    1. ajax发送json数据时设置contentType: "application/json”和不设置时到底有什么区别?contentType: "application/js ...

  9. json数组转普通数组 普通数组转json数组

    1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行 ...

随机推荐

  1. 题解:2018级算法第一次上机 C1-pair

    题目描述 北航2018级软件学院算法分析与设计第一次上机第三题 样例 实现解释 题目类型: 这类题目其实就是典型的递归分析语句形式的问题,也是编译原理课程中语法分析的重要方法之一. 解决方案: 为了解 ...

  2. shell专题(十):Shell工具(重点)

    10.1 cut cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的.cut 命令从文件的每一行剪切字节.字符和字段并将这些字节.字符和字段输出. 1.基本用法 cut [选项参数]  fi ...

  3. 【学习记录】C#保存数据至CSV文档 & DateTime格式模式控制解释

    数据类的定义: public class Result_Display { private string id; public string ID { get { return id; } set { ...

  4. 深入理解Java虚拟机--个人总结(持续更新)

    深入理解Java虚拟机--个人总结(持续更新) 每天按照书本学一点,会把自己的总结思考写下来,形成输出,持续更新,立帖为证 -- 2020年7月7日 开始第一次学习 -- 2020年7月8日 今天在百 ...

  5. 【高性能Mysql 】读书笔记(三)

    第5章 创建高性能的索引 本文为<高性能Mysql 第三版>第四章读书笔记,Mysql版本为5.5 索引基础 索引的重要性:找一本800面的书的某一段内容,没有目录也没有页码(页码也可类比 ...

  6. 盘点JMeter不为人知那一些细节

    Jmeter工作原理 向服务器提交请求,并从服务器取回请求返回的结果.即建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果. 文章内容以Jm ...

  7. P1100 高低位切换

    这个题很简单 直接用左移位(<<)和右移位(>>)就可以过了 #include<iostream> #include<cstdio> using nam ...

  8. 项目管理:如何显性管理并提升Story分解能力

    引言: 在“DevOps能力之屋(CapabilitiesHouse of DevOps)”中,华为云DevCloud提出(工程方法+最佳实践+生态)×工具平台=DevOps能力.华为云DevClou ...

  9. db2创建nickname

    db2创建nickname创建步骤 1.创建 server create server servername type DB2/AIX version 10.5 wrapper drda authid ...

  10. vue 应用 :关于 ElementUI 的 message 组件

    我们知道,这个东西的基本用法是这样的: this.$message({ message: '恭喜你,这是一条成功消息', type: 'success' }); 但是我觉得这样还是有点麻烦,所以我决定 ...