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

本文主要介绍了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

*/

public class Main

{

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().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 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().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 list = mapper.readValue(josn4, javaType4);

System.out.println("集合里是对象 对象里有集合转换:" + list);

}

/***

* 转对象

* @param josn

* @param clz

* @return

*/

public T jsonStreamConverObject(String josn, Class 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 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 jsonConverList(String josn, Class clz)

{

List 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]]]]

* */

更多Java的Jackson库中复杂对象集合的几种简单转换相关文章请关注PHP中文网!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值