转:

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. Nginx虚拟主机配置--配置Nginx的主配置文件

    单台Nginx WEB服务器同时会配置N个网站,也可称之为配置N个虚拟域名的主机,即多个域名对应同一个80端 口. 每个虚拟主机可以是一个独立网站.可以具有独立域名,同一台物理机上面的虚拟主机相互之间 ...

  2. charles 手机证书下载安装

    本文参考:charles 手机证书下载安装 本文的Charles,适应windows/MAC/IOS/Android,避免抓包HTTPS失败和乱码: 用的版本是V4.1.2,其它版本原理类似: cha ...

  3. 关于部署 Kafka 的一些所得

    前记 最近在做日志模块. 其中用到的日志信息传输的中间工具用的是的 Kafka,在自己的摸索中总是有一些问题的,在这里记录下来.  Kafka 环境搭建 首先是下载需要的安装软件. JDK.Zooke ...

  4. 网站添加logo图片

    网站添加log图片 第一种方法 这里使用的图片一般为16*16大小的图片 <link rel="shortcut icon" href="http://xxx.xx ...

  5. git如何利用分支进行多人开发

    在使用git时,假如远程仓库有 dev 和 master 两个分支,master 作为一个稳定版分支,可用于直接发布产品,日常的开发则 push 到 dev 分支,那本地是不是要从 dev 分支中创建 ...

  6. Java位运算总结:位运算用途广泛

    前天几天研究了下JDK的Collection接口,本来准备接着研究Map接口,可是一查看HashMap类源码傻眼咯,到处是位运算实现,所以我觉得还是有必要先补补位运算知识,不然代码看起来有点费力.今天 ...

  7. SQlAlchemy的增删改查

    一.创建数据表 # ORM中的数据表是什么呢? # Object Relation Mapping # Object - Table 通过 Object 去操纵数据表 # 从而引出了我们的第一步创建数 ...

  8. jquery.cookie广告弹窗点击关闭后一天弹一次

    jquery.cookie广告弹窗点击关闭后一天弹一次 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...

  9. h5css样式

    兼容性前缀: 谷歌:webkit 火狐:moz ie:ms 欧鹏:o选择器: 属性选择器: * = 包含 {href * = 'www'} ^ = 以什么开头 $ = 以什么结尾 伪类选择器: 第一个 ...

  10. REST与RPC区别

    OSI网络七层模型 第一层:应用层.定义了用于在网络中进行通信和传输数据的接口: 第二层:表示层.定义不同的系统中数据的传输格式,编码和解码规范等: 第三层:会话层.管理用户的会话,控制用户间逻辑连接 ...