全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java的Jackson库中复杂对象集合的几种简单转换

话不多说,请看代码:

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 


相关文章: 建站VPS推荐:2025年高性能服务器配置指南  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  如何在IIS中新建站点并配置端口与物理路径?  如何选择高性价比服务器搭建个人网站?  建站10G流量真的够用吗?如何应对访问高峰?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  高性价比服务器租赁——企业级配置与24小时运维服务  音响网站制作视频教程,隆霸音响官方网站?  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  如何快速完成中国万网建站详细流程?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  已有域名能否直接搭建网站?  建站之星收费标准详解:套餐费用及年费价格表一览  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  建站之星代理商如何保障技术支持与售后服务?  建站之星如何快速解决建站难题?  如何通过IIS搭建网站并配置访问权限?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  湖北网站制作公司有哪些,湖北清能集团官网?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  定制建站流程解析:需求评估与SEO优化功能开发指南  如何通过智能用户系统一键生成高效建站方案?  建站主机默认首页配置指南:核心功能与访问路径优化  网站app免费制作软件,能免费看各大网站视频的手机app?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何用5美元大硬盘VPS安全高效搭建个人网站?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  盘锦网站制作公司,盘锦大洼有多少5G网站?  如何通过远程VPS快速搭建个人网站?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  如何在腾讯云免费申请建站?  如何在景安服务器上快速搭建个人网站?  如何通过NAT技术实现内网高效建站?  建站主机如何选?高性价比方案全解析  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  安云自助建站系统如何快速提升SEO排名?  如何快速上传自定义模板至建站之星?  制作公司内部网站有哪些,内网如何建网站?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  高端建站三要素:定制模板、企业官网与响应式设计优化  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  如何在万网开始建站?分步指南解析  高防服务器租用如何选择配置与防御等级? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。