Java_jackson_bean/map/list与json相互转换

深碍√TFBOYSˉ_ 2022-08-14 01:50 250阅读 0赞

1. 下载(免积分)

json_jackson_junit_demo.zip

Center

2. 代码

  1. package org.foo.bean;
  2. public class Person {
  3. private String name;
  4. private String gender;
  5. private String age;
  6. // ----
  7. @Override
  8. public String toString() {
  9. return "User{ name : \""+name+"\", gender : \""+gender+"\", age : \""+age+"\"}";
  10. }
  11. public Person() {
  12. super();
  13. }
  14. public Person(String name, String gender, String age) {
  15. this.name = name;
  16. this.gender = gender;
  17. this.age = age;
  18. }
  19. public String getName() {
  20. return name;
  21. }
  22. public void setName(String name) {
  23. this.name = name;
  24. }
  25. public String getGender() {
  26. return gender;
  27. }
  28. public void setGender(String gender) {
  29. this.gender = gender;
  30. }
  31. public String getAge() {
  32. return age;
  33. }
  34. public void setAge(String age) {
  35. this.age = age;
  36. }
  37. }
  38. package org.foo.jackson;
  39. import java.util.ArrayList;
  40. import java.util.LinkedHashMap;
  41. import java.util.List;
  42. import java.util.Map;
  43. import org.codehaus.jackson.map.ObjectMapper;
  44. import org.codehaus.jackson.type.JavaType;
  45. import org.foo.bean.Person;
  46. import org.junit.Test;
  47. public class JsonUtils {
  48. private static ObjectMapper objectMapper = new ObjectMapper();
  49. public static <T> String bean2Json(T bean) {
  50. try {
  51. return objectMapper.writeValueAsString(bean);
  52. } catch (Exception e) {
  53. e.printStackTrace();
  54. }
  55. return "";
  56. }
  57. public static String map2Json(Map map) {
  58. try {
  59. return objectMapper.writeValueAsString(map);
  60. } catch (Exception e) {
  61. e.printStackTrace();
  62. }
  63. return "";
  64. }
  65. public static String list2Json(List list) {
  66. try {
  67. return objectMapper.writeValueAsString(list);
  68. } catch (Exception e) {
  69. e.printStackTrace();
  70. }
  71. return "";
  72. }
  73. public static <T> T json2Bean(String json, Class<T> beanClass) {
  74. try {
  75. return objectMapper.readValue(json, beanClass);
  76. } catch (Exception e) {
  77. e.printStackTrace();
  78. }
  79. return null;
  80. }
  81. public static <T> List<T> json2List(String json, Class<T> beanClass) {
  82. try {
  83. return (List<T>)objectMapper.readValue(json, getCollectionType(List.class, beanClass));
  84. } catch (Exception e) {
  85. e.printStackTrace();
  86. }
  87. return null;
  88. }
  89. public static Map json2Map(String json) {
  90. try {
  91. return (Map)objectMapper.readValue(json, Map.class);
  92. } catch (Exception e) {
  93. e.printStackTrace();
  94. }
  95. return null;
  96. }
  97. public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {
  98. return objectMapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
  99. }
  100. //-------------
  101. @Test
  102. public void testBean2Json() throws Exception{
  103. Person person = new Person("张三_testBean2Json", "男", "22");
  104. System.out.println( bean2Json(person) );
  105. // => {"name":"张三_testBean2Json","gender":"男","age":"22"}
  106. }
  107. @Test
  108. public void testMap2Json() throws Exception{
  109. Map<String, String> userMap = new LinkedHashMap<String, String>();
  110. userMap.put("name", "张三_testMap2Json");
  111. userMap.put("gender", "男");
  112. userMap.put("age", "22");
  113. System.out.println( map2Json(userMap) );
  114. // => {"name":"张三_testMap2Json","gender":"男","age":"22"}
  115. }
  116. @Test
  117. public void testList2Json() throws Exception{
  118. List<String> list = new ArrayList<String>();
  119. list.add("张三_testList2Json");
  120. list.add("男");
  121. list.add("22");
  122. System.out.println( list2Json(list) );
  123. // => ["张三_testList2Json","男","22"]
  124. List<Person> personList = new ArrayList<Person>();
  125. personList.add( new Person("张1", "男1", "11") );
  126. personList.add( new Person("张2", "男2", "22") );
  127. System.out.println( list2Json(personList) );
  128. // => [{"name":"张1","age":"11","gender":"男1"},{"name":"张2","age":"22","gender":"男2"}]
  129. }
  130. @Test
  131. public void testJson2Bean() throws Exception{
  132. Person person = new Person("张三_testJson2Bean", "男", "22");
  133. String json = bean2Json(person);
  134. System.out.println( json2Bean(json, Person.class) );
  135. // => User{ name : "张三_testJson2Bean", gender : "男", age : "22"}
  136. json = "{\"name\":\"wahh\"}";
  137. System.out.println( json2Bean(json, Person.class) );
  138. }
  139. @Test
  140. public void testJson2List() throws Exception{
  141. Person person1 = new Person("张三1", "男1", "11");
  142. Person person2 = new Person("张三2", "男2", "22");
  143. List<Person> personList = new ArrayList<Person>();
  144. personList.add(person1);
  145. personList.add(person2);
  146. System.out.println( json2List( list2Json(personList) , Person.class) );
  147. // => [User{ name : "张三1", gender : "男1", age : "11"}, User{ name : "张三2", gender : "男2", age : "22"}]
  148. }
  149. @Test
  150. public void testJson2Map() throws Exception{
  151. Person person = new Person("张三", "男", "22");
  152. String json = bean2Json(person);
  153. Map map = json2Map(json);
  154. System.out.println( map );
  155. // => {name=张三, gender=男, age=22}
  156. }
  157. }

发表评论

表情:
评论列表 (有 0 条评论,250人围观)

还没有评论,来说两句吧...

相关阅读