java中json转对象_Java开发中json使用,各对象与json相互转换
Json:一种网络通信使用的数据格式,因为便于解析,比较流行,对象可以转为json,同样json也可以转对象。
下面介绍下Json工具的简单使用(fastjson && jackson)。
FastJson
阿里的json数据解析工具包,国内比较流行,用的较多。
对象转json字符串
JSON.toJSONString(user);
对象转json对象
(JSONObject)JSON.toJSON(user);
json字符串转对象
JSON.parseObject(jsonString, User.class);
json对象转对象
User javaObject = JSON.toJavaObject(jsonObject, User.class);
list 转 json
String jsonString =JSON.toJSONString(users);
json 转 list
List parseArray = JSON.parseArray(jsonString, User.class);
完整示例代码(需要引入fastjson的jar包):
package test;//JsonTest.java 文件所在位置:test包
importjava.util.ArrayList;importjava.util.List;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;public classJsonTest {//User 类
static classUser{privateInteger age;privateString name;publicInteger getAge() {returnage;
}public voidsetAge(Integer age) {this.age =age;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}
@OverridepublicString toString() {return "User [age=" + age + ", name=" + name + "]";
}
}public static voidmain(String[] args) {//new 一个User对象
User user = newUser();
user.setAge(1);
user.setName("xiaojun");//对象转json字符串
String jsonString =JSON.toJSONString(user);
System.out.println("对象转json字符串:\t" +jsonString);//对象转json对象
user.setAge(2);
JSONObject jsonObject=(JSONObject)JSON.toJSON(user);
System.out.println("对象转json:\t" +jsonObject);//json字符串转对象
User parseObject = JSON.parseObject(jsonString, User.class);
System.out.println("json字符串转对象:\t" +parseObject);//json对象转对象
User javaObject = JSON.toJavaObject(jsonObject, User.class);
System.out.println("json对象转对象:\t" +javaObject);
User user2= newUser();
user2.setAge(9);
user2.setName("xiaochen");
ArrayList users = new ArrayList<>();
users.add(user2);
users.add(user);
System.out.println("list 转json============\t");
System.out.println("准备转json的list:\t" +users);//list 转json
String jsonString2 =JSON.toJSONString(users);
System.out.println("list转json:\t" +jsonString2);//json 转list
List parseArray = JSON.parseArray(jsonString2, User.class);
System.out.println("json转list:\t" +parseArray);
}
}
执行main方法Console控制台打印结果如下:
Jackson
与FastJson一样,Jackson 应该比fastjson 出现更早,api用法有些不一样,但是使用效果差不多
使用jackson编写的json工具类,JsonUtil:
importjava.util.List;importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.databind.JavaType;importcom.fasterxml.jackson.databind.ObjectMapper;/****/
public classJsonUtil {//定义jackson对象
private static final ObjectMapper MAPPER = newObjectMapper();/*** 将对象转换成json字符串。
*
Title: pojoToJson
*
Description:
*@paramdata
*@return
*/
public staticString objectToJson(Object data) {try{
String string=MAPPER.writeValueAsString(data);returnstring;
}catch(JsonProcessingException e) {
e.printStackTrace();
}return null;
}/*** 将json结果集转化为对象
*
*@paramjsonData json数据
*@paramclazz 对象中的object类型
*@return
*/
public static T jsonToPojo(String jsonData, ClassbeanType) {try{
T t=MAPPER.readValue(jsonData, beanType);returnt;
}catch(Exception e) {
e.printStackTrace();
}return null;
}/*** 将json数据转换成pojo对象list
*
Title: jsonToList
*
Description:
*@paramjsonData
*@parambeanType
*@return
*/
public static List jsonToList(String jsonData, ClassbeanType) {
JavaType javaType= MAPPER.getTypeFactory().constructParametricType(List.class, beanType);try{
List list =MAPPER.readValue(jsonData, javaType);returnlist;
}catch(Exception e) {
e.printStackTrace();
}return null;
}
}
本文不定期更新
java中json转对象_Java开发中json使用,各对象与json相互转换相关推荐
- SearchHit转成java对象_Java开发中最常犯的10个错误,你中招了吗?
http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ 阅读目录 Array转ArrayList 判断一个数 ...
- java 判断手机运营商_Java开发中识别手机运营商的方法
在Java开发中程序需要根据用户输入的号码判断运营商,这该怎么实现呢?而我们需要根据不同的运营商进行相应的处理,下面是爱站技术频道小编介绍的Java开发中识别手机运营商的方法. js实现方法: var ...
- java开发中遇到的问题_java开发中遇到的问题及解决方法(持续更新)
摘自 http://blog.csdn.net/pony12/article/details/38456261 工作中,以C/C++开发为主,难免与其他服务和Web进行交换,Java开发必不可少,又不 ...
- java可以返回微妙吗_Java开发中10个最为微妙的最佳编程实践
这是10个最佳实践的列表,比你平时在Josh Bloch的<effective java>中看到的规则更加精妙.和Josh Bloch列出的非常容易学习的.和日常情况息息相关的实践相比,这 ...
- java开发中准则怎么写_Java开发中通用的方法和准则20条
1. 不要在常量和变量中出现易混淆的字母 包名全小写.类名首字母全大写.常量全部大写并下划线分割.变量采用驼峰命名等,这些是最基本的Java编码规范. public class TestDemo { ...
- java入侵检测源码_Java Web中的入侵检测及简单实现
作者:EasyJF开源团队 大峡 一.简介 在Java Web应用程中,特别是网站开发中,我们有时候需要为应用程序增加一个入侵检测程序来防止恶意刷新的功能,防止非法用户不断的往Web应用中重复发送数据 ...
- php开发中常用函数总结,PHP开发中常用函数总结
PHP开发中常用函数总结 发布于 2014-10-31 08:34:03 | 48 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Preproc ...
- java遍历对象属性_java开发中遍历一个对象的所有属性并set值 缓存优化
今天技术之家陪你一起了解java开发中遍历一个对象的所有属性并set值 缓存优化: Java反射 1.创建缓存池,可以加快访问速度private static final Map> CACHE ...
- java安装_Java开发中更多常见的危险信号
java安装 在< Java开发中的常见危险信号>一文中,我介绍了一些不一定本身就是错误或不正确的做法,但它们可能表明存在更大的问题. 这些"红色标记"类似于" ...
- java开发常用jar包_Java开发中常用jar包整理及使用
本文整理了我自己在Java开发中常用的jar包以及常用的API记录. 一.common-lang3 简介:一个现在最为常用的jar包,封装了许多常用的工具包 依赖: org.apache.common ...
最新文章
- 分享mac磁盘清理的方法
- python中prettytable模块_Python库: PrettyTable 模块
- 1-1-2 交叉编译工具链
- mysql count 1_高性能MySQL count(1)与count(*)的差别
- Tensorflow-pb保存与导入
- 解决php中json_decode的异常JSON_ERROR_CTRL_CHAR
- [Java并发编程(三)] Java volatile 关键字介绍
- ARKit玩起来 - AR卡通秀-史小川-专题视频课程
- PRCS-1007 : Server pool egapdb already exists
- 淘宝订单信息获取接口
- 软件测试类型——集成测试
- 华为虚拟化服务服务器忘记密码,华为云linux服务器 忘记密码
- Leetcode刷题-最长公共前缀
- CDN和京东仓库的那些事儿
- 程序员 业余赚钱的六种有效途径
- ERP-库存与存货-原料采购单
- 程序员必备的5大有趣编程网站,学编程就像玩游戏一样!
- 股份有限公司的章程包括哪些内容?
- 视频网站忙结盟 酷6逆势转型SNS视频模式
- 大数据领域的杰出公司(国内外1)
热门文章
- oracle上如何下载java_王二暖Oracle视频教程 下载
- mldn andoird
- MLDN的超级玛丽。。。
- CSS opacity - 实现图片半透明效果
- foobar2000 for mac(经典音乐播放器)
- Mysql查询(基于某酒店2000w条数据)
- coreseek java_使用python测试sphinx(coreseek)做全文索引
- 台式计算机找不到无线连接,台式机如何连接wifi_台式机找不到无线网络
- DirectX SDK 2010 , DXSDK_Jun10.exe, 下载地址
- 获取CPUID序列号的两种办法