Json字符串处理

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

pom.xml

<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.7</version>
</dependency>

 编写GsonUtils类

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//package util;import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.Collection;
import java.util.Enumeration;
import java.util.Iterator;public class GsonUtils {private static final String EMPTY_JSON = "{}";private static final String EMPTY_JSON_ARRAY = "[]";private static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";public GsonUtils() {}public static String toJson(Object target) {return toJson(target, (Type)null, (String)null);}public static String toJson(Object target, Type targetType, String datePattern) {if(target == null) {return EMPTY_JSON;} else {GsonBuilder builder = new GsonBuilder();if(datePattern == null || datePattern.length() < 1) {datePattern = DEFAULT_DATE_PATTERN;}builder.setDateFormat(datePattern);Gson gson = builder.create();String result = EMPTY_JSON;try {if(targetType == null) {result = gson.toJson(target);} else {result = gson.toJson(target, targetType);}} catch (Exception var7) {if(target instanceof Collection || target instanceof Iterator || target instanceof Enumeration || target.getClass().isArray()) {result = EMPTY_JSON_ARRAY;}}return result;}}public static String toJson(Object target, Type targetType) {return toJson(target, targetType, (String)null);}public static <T> T fromJson(String json, TypeToken<T> token, String datePattern) {if(json != null && json.length() >= 1) {GsonBuilder builder = new GsonBuilder();if(datePattern == null || datePattern.length() < 1) {datePattern = DEFAULT_DATE_PATTERN;}builder.setDateFormat(datePattern);Gson gson = builder.create();try {return gson.fromJson(json, token.getType());} catch (Exception var6) {return null;}} else {return null;}}public static Object fromJson(String json, Type type, String datePattern) {if(json != null && json.length() >= 1) {GsonBuilder builder = new GsonBuilder();if(datePattern == null || datePattern.length() < 1) {datePattern = DEFAULT_DATE_PATTERN;}builder.setDateFormat(datePattern);Gson gson = builder.create();try {return gson.fromJson(json, type);} catch (Exception var6) {return null;}} else {return null;}}public static Object fromJson(String json, Type type) {return fromJson(json, (Type)type, (String)null);}public static <T> T fromJson(String json, TypeToken<T> token) {return (T)fromJson(json, (TypeToken)token, (String)null);}public static <T> T fromJson(String json, Class<T> clazz, String datePattern) {if(json != null && json.length() >= 1) {GsonBuilder builder = new GsonBuilder();if(datePattern == null || datePattern.length() < 1) {datePattern = DEFAULT_DATE_PATTERN;}builder.setDateFormat(datePattern);Gson gson = builder.create();try {return gson.fromJson(json, clazz);} catch (Exception var6) {return null;}} else {return null;}}public static <T> T fromJson(String json, Class<T> clazz) {return (T)fromJson(json, (Class)clazz, (String)null);}}

编写test测试类

public class Test {class Model{private String id;private String name;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String toString(){return "id="+this.id+";name="+this.name;}}public static void main(String[] args) {Map<String,Object> map = new HashMap<String,Object>();map.put("1",1);map.put("2",2);map.put("3",3);System.out.println(GsonUtils.toJson(map));List<Model> listTojson = new ArrayList<Model>();Test.Model model1 = new Test().new Model();model1.setId("1");model1.setName("张三");Test.Model model2 = new Test().new Model();model2.setId("2");model2.setName("李四");listTojson.add(model1);listTojson.add(model2);String json = GsonUtils.toJson(listTojson);System.out.println("json="+json);List<Model> modelList = (List<Model>)GsonUtils.fromJson(json,new TypeToken<List<Model>>(){}.getType());System.out.println("modelList="+modelList.toString());}
}

 

转载于:https://my.oschina.net/zhangshuge/blog/760012

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用脚本控制虚拟机

#############用脚本控制虚拟机给file.sh 一个权限chmod x file.sh转载于:https://blog.51cto.com/forever8/1863587

CRTMPServer 在CentOS 64-bit下的编译(转)

CRTMPServer 在CentOS 64-bit下的编译 http://blog.csdn.net/qiuchangyong/article/details/52848942 一、Centos 用 wget 下载需要的软件 wget http://www.cmake.org/files/v2.8/cmake-2.8.6.tar.gz 二、安装 cmake tar zxvf cmake-2.8.4.tar.gzcd cmake-2.8.6./bootstrapgma…

解决虚拟机 正在决定eht0 的ip信息失败 无链接-- 添加虚拟网卡

添加步骤&#xff1a;1、进入设备管理器 2、点下一步3、继续下一步4、继续往下走转载于:https://www.cnblogs.com/Yongzhouunknown/p/4802530.html

使用 Arduino 和 LM35 温度传感器监测温度

上一篇玩儿了一下Arduino入门&#xff0c;这次再进一步&#xff0c;用一下LM35温度传感器来监测当前温度。LM35温度传感器已经在Arduino入门套件里包含了&#xff0c;就是那个有三个脚的小黑块儿。 我们先把这些东西连起来。把传感器查在面包板上&#xff0c;然后按照下面的示意…

快照是什么?揭秘存储快照的实现

欢迎大家前往腾讯云社区&#xff0c;获取更多腾讯海量技术实践干货哦~ 本文由许登博 发表于云社区专栏 原创声明&#xff1a;本文首发腾讯云云社区&#xff0c;未经允许&#xff0c;不得转载 前言 存储网络行业协会SNIA&#xff08;StorageNetworking Industry Association&…

MySQL 事物隔离级别

1.什么是事物&#xff1a; 访问并可能更新数据库的一个完整的程序执行单元&#xff08;UNIT&#xff09;2、事物必须满足ACID特性&#xff1a;A&#xff0c;atomic&#xff0c;原子性&#xff0c;要么都提交&#xff0c;要么都失败&#xff0c;不能一部分成功&#xff0c;一部分…

IIS_各种问题

IIS7中默认是已经加载了脚本映射处理。但今天装了个WIN7&#xff0c;装好IIS后却发现没有。于是手动去这安装&#xff0c;在添加html映射时提示&#xff1a;模块列表中必须要有IsapiModule或cgiModule 因为 IIS 7 采用了更安全的 web.config 管理机制&#xff0c;默认情况下会锁…

平板涂色

题目描述 CE数码公司开发了一种名为自动涂色机&#xff08;APM&#xff09;的产品。它能用预定的颜色给一块由不同尺寸且互不覆盖的矩形构成的平板涂色。 为了涂色&#xff0c;APM需要使用一组刷子。每个刷子涂一种不同的颜色C。APM拿起一把有颜色C的刷子&#xff0c;并给所有颜…

error while loading shared libraries: libstdc++.so.6: cannot open shared object file

查看谁提供这个.so yum whatprovides libstdc.so.6 yum install libstdc-4.8.5-28.el7.i686 #安装上边查出来的.so 此时如果出错&#xff0c;最后一行是libstdc-4.8.5-28.el7.i686 ! libstdc-4.8.5-11.el7.x86_64 yum update libstdc-4.8.5-11.el7.x86_64 #更新一下,这个是上…

【转】为控制台窗口建立消息队列

介绍Windows的窗口、消息、子类化和超类化 这篇文章本来只是想介绍一下子类化和超类化这两个比较“生僻”的名词。为了叙述的完整性而讨论了Windows的窗口和消息&#xff0c;也简要讨论了进程和线程。子类化&#xff08;Subclassing&#xff09;和超类化&#xff08;Superclass…

hightmaps 按地图上显示的统计数据

离extjs 至 easyui 到html5到hightchars 再到hightmaps。Exjts和easyui很相似&#xff0c;extjs是重量级的&#xff0c;easyui轻量级的。比extjs容易上手。照着demo改就能够开发了。easyui入门demo见&#xff1a;easyui-demo&#xff0c;或者到官网http://www.jeasyui.com/&…

非IT人士的云栖酱油之行 (程序猿迷妹的云栖之行)

摘要&#xff1a; 熟悉我的人都知道&#xff0c;我是一个贪玩儿且不学无术的姑娘&#xff0c;对于互联网我也是知之甚少&#xff1b;这次去到杭州参加阿里巴巴集团主办的为期4天的科技大会也是很例外&#xff1b;但是不得不说这次的会议真是让我很震惊。今天我就和大家分享一下…

搭建基于Jenkins的CI服务器

安装Jenkins和创建任务这些操作网上一搜一大把&#xff0c;这里就没必要写了&#xff0c;直接就开始编译、单元测试&#xff0c;覆盖&#xff0c;git提交触发构建&#xff0c;构建失败发送给提交人邮件。 因为项目比较复杂&#xff0c;为了懒省事我直接在CI服务器上安装了visua…

BZOJ 1270: [BeijingWc2008]雷涛的小猫( dp )

简单的dp..dp(i,j) max(dp(x,y))cnt[i][j], (x,y)->(i,j)是合法路径.设f(i) max(dp(x,y))(1≤x≤N, 1≤y≤i), g(i,j) max(dp(i, k))(1≤k≤j)那么dp(i,j) max(f(jdelta), g(i,j1))cnt[i][j]. 递推即可. 时间复杂度O(NH)----------------------------------------------…

POJ 1141

题意&#xff1a;给出一个表达式的子序列&#xff0c;要你填充这个序列&#xff0c;保证最终形成的序列长度最短&#xff0c;也就是添加的括号最少 这个子序列要遵循括号匹配的原则。 分析&#xff1a;转移方程dp[i][j]min(dp[i][k],dp[k1][j]).i<k<j.dp[1][1]1; dp[i][j…

java中的NAN和INFINITY

2019独角兽企业重金招聘Python工程师标准>>> java浮点数运算中有两个特殊的情况&#xff1a;NAN、INFINITY。 1、INFINITY&#xff1a; 在浮点数运算时&#xff0c;有时我们会遇到除数为0的情况&#xff0c;那java是如何解决的呢&#xff1f; 我们知道&#xff0c;在…

Troubleshooting(三):网络

2019独角兽企业重金招聘Python工程师标准>>> 前言 在 Troubleshooting 过程中&#xff0c;检查完进程信息后&#xff0c;接下来就是排查网络情况的时候了&#xff0c;初略翻过《TCP/IP 详解卷一&#xff1a;协议》这本书&#xff0c;简直跟看《深入理解 Linux 内核》…

SqlServer 备份还原教程

看了众多教程&#xff0c;自己也写个增强记忆&#xff0c;错误地方麻烦指出。 ———————————————————————-备份——————————————————————– 1.打开数据库&#xff0c;成功连接 2.找到要备份的数据库&#xff0c;图中演示备份数据库te…

深入理解计算机系统----读书笔记

第二部分 信息的表示和处理 信息存储&#xff1a; 二进制&#xff08;0101001&#xff09;&#xff0c; 八进制&#xff0c;十六进制&#xff08;0x32FD&#xff09; 字&#xff08;word size&#xff09;指明整数和指针数据的标称大小&#xff08;normal size&#xff09;&…

OpenStack-Zun 使用

Zun组件简介 Zun是Openstack中提供容器管理服务的组件&#xff0c;于2016年6月建立。Zun的目标是提供统一的Openstack API用于启动和管理容器&#xff0c;支持多种容器技术。Zun原来称为Higgins&#xff0c;后改名为Zun。 Zun计划支持多种容器技术&#xff0c;Docker&#xff0…