话不多说,请看代码:
package com;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* jackson 复杂 对象集合 的几种简单转换
* @author lenovo
*
* @param <T>
*/
public class Main<T>
{
static ObjectMapper mapper = new ObjectMapper();
public static void main(String[] args) throws JsonParseException,
JsonMappingException, IOException
{
String josn = "{\"UserID\":1,\"LoginName\":\"唐工\",\"Truename\":\"超级\",\"Nickname\":null,\"LoginPwd\":\"E10ADC3949BA59ABBE56E057F20F883E\",\"QQ\":\"\",\"Phone\":\"\",\"Email\":null,\"Remark\":\"\",\"Account_Non_Locked\":0,\"Telelephone\":null,\"IsDelete\":0}";
User u = mapper.readValue(josn, User.class);
// User u=new Main<User>().jsonStreamConverObject(josn, User.class);
System.out.println("转对象:" + u);
// 转集合
String josn2 = "[{\"UserID\":1,\"LoginName\":\"唐工\",\"Truename\":\"超级\",\"Nickname\":null,\"LoginPwd\":\"E10ADC3949BA59ABBE56E057F20F883E\",\"QQ\":\"\",\"Phone\":\"\",\"Email\":null,\"Remark\":\"\",\"Account_Non_Locked\":0,\"Telelephone\":null,\"IsDelete\":0}]";
JavaType javaType = mapper.getTypeFactory().constructParametricType(
List.class, User.class);
List<User> me = mapper.readValue(josn2, javaType);
System.out.println("转集合me:" + me);
// 对象里有 集合 转换
String josn3 = "{\"UserID\":1,\"LoginName\":\"唐工\",\"Truename\":\"超级\",\"Nickname\":null,\"LoginPwd\":\"E10ADC3949BA59ABBE56E057F20F883E\",\"QQ\":\"\",\"Phone\":\"\",\"Email\":null,\"Remark\":\"\",\"Account_Non_Locked\":0,\"Telelephone\":null,\"IsDelete\":0,\"RoleList\":[{\"Roleid\":0,\"Name\":\"超级管理员\",\"Show_Name\":\"超级管理员\",\"Remark\":null,\"Type\":1}]}";
User u3 = mapper.readValue(josn3, User.class); // 简单方式
// User u3=new Main<User>().jsonConverObject(josn3, User.class); 流方式
System.out.println("转对象里有集合u3:" + u3);
// 集合 对象 集合 转换
String josn4 = "[{\"UserID\":1,\"LoginName\":\"唐工\",\"Truename\":\"超级\",\"Nickname\":null,\"LoginPwd\":\"E10ADC3949BA59ABBE56E057F20F883E\",\"QQ\":\"\",\"Phone\":\"\",\"Email\":null,\"Remark\":\"\",\"Account_Non_Locked\":0,\"Telelephone\":null,\"IsDelete\":0,\"RoleList\":[{\"Roleid\":0,\"Name\":\"超级管理员\",\"Show_Name\":\"超级管理员\",\"Remark\":null,\"Type\":1}]},{\"UserID\":2,\"LoginName\":\"唐工\",\"Truename\":\"超级\",\"Nickname\":null,\"LoginPwd\":\"E10ADC3949BA59ABBE56E057F20F883E\",\"QQ\":\"\",\"Phone\":\"\",\"Email\":null,\"Remark\":\"\",\"Account_Non_Locked\":0,\"Telelephone\":null,\"IsDelete\":0,\"RoleList\":[{\"Roleid\":0,\"Name\":\"超级管理员\",\"Show_Name\":\"超级管理员\",\"Remark\":null,\"Type\":1}]}]";
JavaType javaType4 = mapper.getTypeFactory().constructParametricType(
List.class, User.class);
List<User> list = mapper.readValue(josn4, javaType4);
System.out.println("集合里是对象 对象里有集合转换:" + list);
}
/***
* 转对象
* @param josn
* @param clz
* @return
*/
public T jsonStreamConverObject(String josn, Class<T> clz)
{
T t = null;
// ObjectMapper jacksonMapper = new ObjectMapper();
InputStreamReader in = new InputStreamReader(new ByteArrayInputStream(
josn.getBytes()));
BufferedReader streamReader = new BufferedReader(in);
StringBuilder buff = new StringBuilder();
String inputStr;
try
{
while ((inputStr = streamReader.readLine()) != null)
buff.append(inputStr);
// ObjectMapper mapper = new ObjectMapper();
t = mapper.readValue(buff.toString(), clz);
} catch (IOException e)
{
e.printStackTrace();
}
return t;
}
/***
* 转对象
* @param josn
* @param clz
* @return
*/
public T jsonConverObject(String josn, Class<T> clz)
{
T t = null;
try
{
t = mapper.readValue(josn, clz);
} catch (JsonParseException e)
{
e.printStackTrace();
} catch (JsonMappingException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
return t;
}
/**
* 转集合
* @param josn
* @param clz
* @return
*/
public List<T> jsonConverList(String josn, Class<T> clz)
{
List<T> me = null;
try
{
// jacksonMapper
// .disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);
// jacksonMapper.enableDefaultTyping();
// jacksonMapper.setVisibility(JsonMethod.FIELD,JsonAutoDetect.Visibility.ANY);
// jacksonMapper.configure(SerializationConfig.Feature.INDENT_OUTPUT,
// false);//格式化
// jacksonMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);
// jacksonMapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS,
// false);
JavaType javaType = mapper.getTypeFactory()
.constructParametricType(List.class, clz);// clz.selGenType().getClass()
me = mapper.readValue(josn, javaType);
} catch (JsonParseException e)
{
e.printStackTrace();
} catch (JsonMappingException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
return me;
}
}
/**
* output:
* 转对象:User [UserID=1, LoginName=唐工, Truename=超级, Nickname=null, LoginPwd=E10ADC3949BA59ABBE56E057F20F883E, QQ=, Phone=, Email=null, Remark=, Account_Non_Locked=0, Telelephone=null, Indate=null, IsDelete=0, RoleList=null]
* 转集合me:[User [UserID=1, LoginName=唐工, Truename=超级, Nickname=null, LoginPwd=E10ADC3949BA59ABBE56E057F20F883E, QQ=, Phone=, Email=null, Remark=, Account_Non_Locked=0, Telelephone=null, Indate=null, IsDelete=0, RoleList=null]]
* 转对象里有集合u3:User [UserID=1, LoginName=唐工, Truename=超级, Nickname=null, LoginPwd=E10ADC3949BA59ABBE56E057F20F883E, QQ=, Phone=, Email=null, Remark=, Account_Non_Locked=0, Telelephone=null, Indate=null, IsDelete=0, RoleList=[Role [Roleid=0, Name=超级管理员, Show_Name=超级管理员, Remark=null, Type=1]]]
* 集合里是对象 对象里有集合转换:[User [UserID=1, LoginName=唐工, Truename=超级, Nickname=null, LoginPwd=E10ADC3949BA59ABBE56E057F20F883E, QQ=, Phone=, Email=null, Remark=, Account_Non_Locked=0, Telelephone=null, Indate=null, IsDelete=0, RoleList=[Role [Roleid=0, Name=超级管理员, Show_Name=超级管理员, Remark=null, Type=1]]], User [UserID=2, LoginName=唐工, Truename=超级, Nickname=null, LoginPwd=E10ADC3949BA59ABBE56E057F20F883E, QQ=, Phone=, Email=null, Remark=, Account_Non_Locked=0, Telelephone=null, Indate=null, IsDelete=0, RoleList=[Role [Roleid=0, Name=超级管理员, Show_Name=超级管理员, Remark=null, Type=1]]]]
* */
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# jackson
# 复杂对象
# 转换复杂对象
# Java利用Jackson序列化实现数据脱敏
# Java之Jackson的基本使用案例讲解
# Java之Jackson使用案例详解
# 详解Java-Jackson使用
# Java中Jackson快速入门
# java的Jackson框架实现轻易转换JSON
# Java整合Jackson实现反序列化器流程
# 几种
# 多说
# throws
# args
# josn
# 唐工
# LoginName
# UserID
# String
# static
# Main
# public
相关文章:
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何高效搭建专业期货交易平台网站?
如何制作算命网站,怎么注册算命网站?
开心动漫网站制作软件下载,十分开心动画为何停播?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
建设网站制作价格,怎样建立自己的公司网站?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
如何获取开源自助建站系统免费下载链接?
Swift中swift中的switch 语句
深圳网站制作平台,深圳市做网站好的公司有哪些?
linux top下的 minerd 木马清除方法
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
如何快速生成可下载的建站源码工具?
,购物网站怎么盈利呢?
重庆市网站制作公司,重庆招聘网站哪个好?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何选择高效便捷的WAP商城建站系统?
建站主机选哪种环境更利于SEO优化?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
建站之星后台管理系统如何操作?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
如何确保西部建站助手FTP传输的安全性?
如何通过多用户协作模板快速搭建高效企业网站?
魔方云NAT建站如何实现端口转发?
网站制作的步骤包括,正确网址格式怎么写?
如何在橙子建站中快速调整背景颜色?
建站之星如何快速解决建站难题?
建站之星如何实现五合一智能建站与营销推广?
建站之星在线客服如何快速接入解答?
宝塔建站助手安装配置与建站模板使用全流程解析
如何在万网自助建站中设置域名及备案?
Swift中循环语句中的转移语句 break 和 continue
宝塔面板如何快速创建新站点?
宝塔面板创建网站无法访问?如何快速排查修复?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
建站之星免费版是否永久可用?
教学网站制作软件,学习*后期制作的网站有哪些?
高防服务器租用首荐平台,企业级优惠套餐快速部署
建站之星如何开启自定义404页面避免用户流失?
如何在自有机房高效搭建专业网站?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
如何选择适配移动端的WAP自助建站平台?
定制建站流程解析:需求评估与SEO优化功能开发指南
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
建站主机如何选?高性价比方案全解析
如何高效生成建站之星成品网站源码?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
网站制作价目表怎么做,珍爱网婚介费用多少?
*请认真填写需求信息,我们会在24小时内与您取得联系。