JSON与对象互转

1  POM.xml


 
 
  1. <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
  2. <dependency>
  3. <groupId>com.alibaba </groupId>
  4. <artifactId>fastjson </artifactId>
  5. <version>1.2.51 </version>
  6. </dependency>

2  附上代码例子

2.1 创建2个实体类,供后面例子使用


 
 
  1. public class School {
  2. private String id;
  3. private String name;
  4. List<User> students = new ArrayList<User>();
  5. public String getId() {
  6. return id;
  7. }
  8. public void setId(String id) {
  9. this.id = id;
  10. }
  11. public String getName() {
  12. return name;
  13. }
  14. public void setName(String name) {
  15. this.name = name;
  16. }
  17. public List<User> getStudents() {
  18. return students;
  19. }
  20. public void setStudents(List<User> students) {
  21. this.students = students;
  22. }
  23. }

 
 
  1. public class User {
  2. private String id;
  3. private String name;
  4. public User(){
  5. }
  6. public User(String id, String name){
  7. this.id = id;
  8. this.name = name;
  9. }
  10. public String getId() {
  11. return id;
  12. }
  13. public void setId(String id) {
  14. this.id = id;
  15. }
  16. public String getName() {
  17. return name;
  18. }
  19. public void setName(String name) {
  20. this.name = name;
  21. }
  22. }

 2.2 Json字符串与Map、List、object之间的相互转换


 
 
  1. import java.util.ArrayList;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5. import com.alibaba.fastjson.JSON;
  6. import com.alibaba.fastjson.JSONArray;
  7. import com.alibaba.fastjson.JSONObject;
  8. public class TestFastJson {
  9. public static void main(String[] args){
  10. json2JsonObject(); //将Json字符串转换为JSONObject对象
  11. json2JavaBean(); //将Json字符串转换为JavaBean对象
  12. json2JsonArray(); //将Json字符串转换为JSONArray对象
  13. json2JavaBeanList(); //将Json字符串转换为JavaBean的集合
  14. javaBean2Json(); //将JavaBean转换为Json格式的数据
  15. javaBean2JsonObject(); //将JavaBean转换为JSONObject对象
  16. json2ListInMap(); //从Json字符串的Map中获取List对象
  17. list2JsonInMap(); //将含list的Map对象转换为Json字符串
  18. stringToMap(); //json字符串转map
  19. mapToString(); //map转json字符串
  20. mapToJsonObject(); //map转json对象
  21. testList2String(); //list转json字符串
  22. }
  23. private static void json2JsonObject() {
  24. String s = "{\"name\":\"peter\"}";
  25. JSONObject object = JSON.parseObject(s);
  26. System.out.println(object.get( "name"));
  27. }
  28. private static void json2JavaBean() {
  29. String s = "{\"id\":\"17051801\",\"name\":\"lucy\"}";
  30. User user = JSON.parseObject(s, User.class);
  31. System.out.println(user.getId());
  32. System.out.println(user.getName());
  33. }
  34. private static void json2JsonArray() {
  35. String s = "[{\"id\":\"17051801\",\"name\":\"lucy\"},{\"id\":\"17051802\",\"name\":\"peter\"}]";
  36. JSONArray array = JSON.parseArray(s);
  37. for ( int i = 0; i < array.size(); i++) {
  38. //JSONArray中的数据转换为String类型需要在外边加"";不然会报出类型强转异常!
  39. String str = array.get(i)+ "";
  40. JSONObject object = JSON.parseObject(str);
  41. System.out.println(object.get( "name"));
  42. }
  43. }
  44. private static void json2JavaBeanList() {
  45. String s = "[{\"id\":\"17051801\",\"name\":\"lucy\"},{\"id\":\"17051802\",\"name\":\"peter\"}]";
  46. List<User> list = JSON.parseArray(s, User.class);
  47. for (User user : list) {
  48. System.out.println(user.getName());
  49. }
  50. }
  51. private static void javaBean2Json() {
  52. User user = new User( "17051801", "lucy");
  53. String string = JSON.toJSONString(user);
  54. System.out.println(string);
  55. }
  56. private static void javaBean2JsonObject() {
  57. User user = new User( "17051801", "lucy");
  58. JSONObject json = (JSONObject) JSON.toJSON(user);
  59. System.out.println(json.get( "id"));
  60. }
  61. private static void json2ListInMap() {
  62. String s = "{json:[{id:\"17051801\",\"name\":\"lucy\"},{id:\"17051802\",\"name\":\"peter\"},"
  63. + "{id:\"17051803\",\"name\":\"tom\"},{id:\"17051804\",\"name\":\"lily\"}]}";
  64. //将Json字符串转换为JSONObject对象,并取出list对象的值
  65. JSONObject object = JSON.parseObject(s);
  66. Object objArray = object.get( "json");
  67. String str = objArray+ "";
  68. //方式1:转换成JSONArray对象形式
  69. JSONArray array = JSON.parseArray(str);
  70. for ( int i = 0; i < array.size(); i++) {
  71. JSONObject obj = JSON.parseObject(array.get(i)+ "");
  72. System.out.println(obj.get( "name"));
  73. }
  74. //方式2:转换成List<JavaBean>形式
  75. List<User> list = JSON.parseArray(str, User.class);
  76. for (User user : list) {
  77. System.out.println(user.getName());
  78. }
  79. }
  80. private static void list2JsonInMap() {
  81. //方式1:构建一个带有list的JavaBean对象
  82. School school = new School();
  83. school.setId( "1");
  84. school.setName( "schoolA");
  85. User user1 = new User();
  86. user1.setId( "17051801");
  87. user1.setName( "lucy");
  88. User user2 = new User();
  89. user2.setId( "17051802");
  90. user2.setName( "peter");
  91. school.getStudents().add(user1);
  92. school.getStudents().add(user2);
  93. //将JavaBean对象转换成Json字符串
  94. String string1 = JSON.toJSONString(school);
  95. System.out.println(string1);
  96. //方式2:构建一个带有list的Map对象
  97. Map<String, Object> map1 = new HashMap<String,Object>();
  98. map1.put( "id", "17051801");
  99. map1.put( "name", "lucy");
  100. Map<String, Object> map2 = new HashMap<String,Object>();
  101. map2.put( "id", "17051802");
  102. map2.put( "name", "peter");
  103. List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
  104. list.add(map1);
  105. list.add(map2);
  106. Map<String, Object> map = new HashMap<String,Object>();
  107. map.put( "id", "1");
  108. map.put( "name", "schoolA");
  109. map.put( "students", list);
  110. //将map对象转换成Json字符串
  111. String string2 = JSON.toJSONString(map);
  112. System.out.println(string2);
  113. }
  114. private static void stringToMap(){
  115. String str = "{\"age\":\"24\",\"name\":\"cool_summer_moon\"}";
  116. JSONObject jsonObject = JSONObject.parseObject(str);
  117. //json对象转Map
  118. Map<String,Object> map = (Map<String,Object>)jsonObject;
  119. System.out.println( "map对象是:" + map);
  120. Object object = map.get( "age");
  121. System.out.println( "age的值是"+object);
  122. }
  123. private static void mapToString(){
  124. Map<String,Object> map = new HashMap<>();
  125. map.put( "age", 24);
  126. map.put( "name", "cool_summer_moon");
  127. String jsonString = JSON.toJSONString(map);
  128. System.out.println( "json字符串是:"+jsonString);
  129. }
  130. private static void mapToJsonObject(){
  131. Map<String,Object> map = new HashMap<>();
  132. map.put( "age", 24);
  133. map.put( "name", "cool_summer_moon");
  134. JSONObject json = new JSONObject(map);
  135. System.out.println( "Json对象是:" + json);
  136. }
  137. /**
  138. * 测试包装类型的List转换为json字符串
  139. */
  140. public static void testList2String() {
  141. List<Long> longs = new ArrayList<Long>();
  142. longs.add( 1L);
  143. longs.add( 2L);
  144. longs.add( 3L);
  145. String actual = JSON.toJSONString(longs);
  146. Assert.assertEquals( "[1,2,3]", actual);
  147. }
  148. }

3 参考

https://blog.csdn.net/flysun3344/article/details/54707965

https://blog.csdn.net/jeffleo/article/details/73612224

https://blog.csdn.net/m0_37846887/article/details/80724630

使用fastjson时,对象转json遇到的首字母大小写问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值