转:

com.alibaba.fastjson.JSONObject;的使用

2018-11-04 23:51:23 mameng1998 阅读数 6404更多

分类专栏: java
 

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.  
  5. public User(){
  6.  
  7. }
  8. public User(String id, String name){
  9. this.id = id;
  10. this.name = name;
  11. }
  12.  
  13. public String getId() {
  14. return id;
  15. }
  16. public void setId(String id) {
  17. this.id = id;
  18. }
  19. public String getName() {
  20. return name;
  21. }
  22. public void setName(String name) {
  23. this.name = name;
  24. }
  25. }

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

com.alibaba.fastjson.JSONObject;的使用的更多相关文章

  1. 探索RequestBody报com.alibaba.fastjson.JSONObject cannot be cast to xxx

    今天使用RequestBody接受前端传过来的参数,以前接受字符串数组非常成功,这次把形参改成了List<User>,原本以为顺利接受参数并映射成User的list结构,结果竟然在我取us ...

  2. 42-字符串到json 的错误 com.alibaba.fastjson.JSONObject cannot be cast to java.lang.String

    json: {"updated_at":1551780617,"attr":{"uptime_h":3,"uptime_m&quo ...

  3. No message body writer has been found for class com.alibaba.fastjson.JSONObject, ContentType: */*

    1:当使用 cxf 发布服务时,要求返回值类型为xml,或者json等 @Path("/searchProductByText") @GET @Produces({"ap ...

  4. net.sf.json.JSONOBJECT.fromObject 与 com.alibaba.fastjson.JSONObject.parseObject

    文章待补充,先写写以下知识点好了. NULL值处理之 net.sf.json.JSONObject 和 com.alibaba.fastjson.JSONObject区别 JSON作为一个轻量级的文本 ...

  5. java后台接收json数据,报错com.alibaba.fastjson.JSONObject cannot be cast to xxx

    从前台接收json封装的list数据,在后台接收时一直报错,com.alibaba.fastjson.JSONObject cannot be cast to xxx, 使用这种方式接收可以接收 @R ...

  6. com.alibaba.fastjson.JSONObject循环给同一对象赋值会出现"$ref":"$[0]"现象问题

    1.今天定义了一个JSONObject对象,引用的com.alibaba.fastjson.JSONObject,循环给这个对象赋值出现"$ref":"$[0]" ...

  7. com.alibaba.fastjson.JSONObject之对象与JSON转换方法

    com.alibaba.fastjson.JSONObject时经常会用到它的转换方法,包括Java对象转成JSON串.JSON对象,JSON串转成java对象.JSON对象,JSON对象转换Java ...

  8. Java-Class-I:com.alibaba.fastjson.JSONObject

    ylbtech-Java-Class-I:com.alibaba.fastjson.JSONObject 1.返回顶部 1.1.import com.alibaba.fastjson.JSON;imp ...

  9. com.alibaba.fastjson.JSONObject

    package com.alibaba.fastjson; import java.util.Date; import java.util.List; import com.alibaba.fastj ...

随机推荐

  1. PAT_B1013

    这道题就是一道打印素数表的题目,本人使用的是筛选法,用bool数组记录是否为素数,每一次筛掉本轮数字的倍数,如果当前数字bool数组对应位置为false,则为素数. 这道题的坑是:你不知道最大第100 ...

  2. linux网络编程之socket编程(十四)

    经过令国鸡冻的APEC会之后,北京的冬天终于不冷了,有暖气的日子就是倍儿爽呀~~洗完热水澡,舒服的躺在床上欢乐地敲打着键盘,是件多么幸福的事呀,好了,抒发情感后,正题继续. 上节中已经初步学习了UDP ...

  3. python数据类型:dict(字典)

    一.字典的简单介绍 字典(dict)是python中唯一的一个映射类型.他是以{}括起来的键值对组成. 语法: {key1:value1,key2:value2......} 注意:key必须是不可变 ...

  4. JS控制SVG缩放+鼠标控制事件

    话不多说,直接上代码吧,不行你砍我... <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  5. python func(*args, **kwargs)

    func(*args, **kwargs) *args, **kwargs表示函数的可变参数 *args 表示任何多个无名参数,它是一个tuple **kwargs 表示关键字参数,它是一个dict ...

  6. Educational Codeforces Round 75 (Rated for Div. 2) B. Binary Palindromes

    链接: https://codeforces.com/contest/1251/problem/B 题意: A palindrome is a string t which reads the sam ...

  7. margin与padding的区别

    当子元素使用padding-top,不会影响到父元素的高度 使用margin-top,则会影响

  8. Jquery Datepicker DateTimepicker

    1.Datepicker http://jqueryui.com/datepicker/ 2.DateTimepicker jquery-ui-timepicker-addon.js http://w ...

  9. php+超大文件上传

    1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...

  10. jQuery相关方法8-----解绑事件

    一.解绑事件方法unbind() 用什么方式绑定的事件,最好用对应的方式解绑事件 unbind("事件名字")括号里写上事件名字,就会解除这个事件 unbind()括号里没有参数就 ...