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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: ai换脸杨颖啪啪免费网站 | 欧美成人免费观看的 | 门卫老张和女警花小说 | 欧美精品一区视频 | 免费精品一区二区三区在线观看 | 被强迫变性翘秘书 | 久热这里只有精品99国产6 | 亚洲国产视频一区 | free哆拍拍免费永久视频 | 免费被靠视频动漫 | 免费观看视频在线 | 狠狠夜夜久久日日91av | 国产精品欧美亚洲韩国日本 | 92国产福利视频一区二区 | 亚洲精品视频免费在线观看 | 希岛爱理aⅴ在线中文字幕 午夜综合网 | 美女在尿口隐私视频 | 92国产福利久久青青草原 | 五月最新商场女厕所高跟嘘嘘 | eee在线播放成人免费 | 久久精品动漫99精品动漫 | 亚洲 日韩经典 中文字幕 | 国产精品日本一区二区不卡视频 | 色噜噜国产精品视频一区二区 | 5g影院天天| 成人国产在线视频在线观看 | 日韩欧美推理片免费在线播放 | 成年人在线观看视频免费 | 四虎影视国产精品婷婷 | 国产色站| 欧美在线一 | 国产精品亚洲一区二区久久 | 色噜噜 男人的天堂在线观看 | 日本特黄一级大片 | 日韩高清在线免费观看 | 香蕉免费一区二区三区 | 亚洲香蕉视频 | 国产馆精品推荐在线观看 | 放荡女小洁的性日记 | tk白嫩玉足脚心vk | gay男男白袜chinese |