一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java的Jackson庫中復雜對象集合的幾種簡單轉換

Java的Jackson庫中復雜對象集合的幾種簡單轉換

2020-08-04 15:21renjiaqi_500Server Java教程

本文主要介紹了Java的Jackson庫中復雜對象集合的幾種簡單轉換。具有很好的參考價值,下面跟著小編一起來看下吧

話不多說,請看代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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]]]]
 * */

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!

原文鏈接:http://www.cnblogs.com/renjiaqi/p/6376751.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 55夜色66夜亚州精品站 | 丝袜老师好湿好紧我要进去了 | 久久婷婷五月综合色精品首页 | 美女无遮挡 | 娇小8一12xxxx第一次 | 亚洲精品m在线观看 | 亚洲精品一区二区三区在线观看 | 亚偷熟乱区视频在线观看 | 饭冈加奈子黑人解禁在线播放 | 99在线观看国产 | 国产剧情一区二区三区 | 麻豆在线md0087免费 | 免费看日产一区二区三区 | 女主被男主做哭失禁高h | 亚洲精品国产福利片 | 午夜爱| 午夜亚洲福利 | 男人在女人下面狂躁 | 四虎影视在线观看永久地址 | 日本暖暖在线视频 | 乌克兰少妇大胆大BBW | 青草视频在线观看视频 | 日韩一级生活片 | 欧美腐剧mm在线观看 | 欧美一卡2卡三卡4卡5卡免费观看 | 精品欧美一区二区三区久久久 | 亚洲精品国产综合久久一线 | 特黄特黄一级高清免费大片 | 亚洲成av人在线视 | 国产午夜视频在线观看网站 | 天海翼三级 | 加勒比一本大道香蕉在线视频 | 日本剧情片在线播放中文版 | 午夜福利合集1000在线 | 日本免费全黄一级裸片视频 | 婷婷综合在线 | 国产高清一区二区三区免费视频 | 亚洲另类老妇videos | 手机亚洲第一页 | 国产精品久久久久久久久久久久 | 含羞草传媒每天免费一次破解 |