转:

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. dict sorted by value. 字典根据 值排序

    d = [('a', 24), ('g', 52), ('i', 12)] print(sorted(d),key = lambda x:x[1]) sorted (字典,排序的依据: 字典[key] ...

  2. 吾爱破解 Happy_New_Year_2019_Challenge 第二题

    题目在这里面找 https://down.52pojie.cn/Challenge/Happy_New_Year_2019_Challenge.rar 内容方面参考论坛上的文章,并做了一些补充 htt ...

  3. re模块及其用法

    一.re模块下的常用方法 首先在使用re模块之前,需要引入re模块 import re 1.与查找相关的: 1.findall 返回列表,找到所有的匹配项 ret = re.findall(" ...

  4. Vue界面中关于APP端回调方法问题

    在混合开发中,HTML界面经常性的需要调用APP端提供的原生方法,而且在很多时候,APP端需要各种回调,如果将所有的回调方法写在内部,不是很方便,而且有些时候,APP端需要定义一些主动触发HTML界面 ...

  5. BZOJ3514 GERALD07加强版

    GERALD07 Description N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数. Input 第一行四个整数N.M.K.type,代表点数.边数.询问数以及询问 ...

  6. javaScript基础及初始面向对象

    对象是什么?对象是包含相关属性和方法的集合体属性方法什么是面向对象面向对象仅仅是一个概念或者编程思想通过一种叫做原型的方式来实现面向对象编程 创建对象自定义对象内置对象 自定义对象2-1基于Objec ...

  7. [Angular 8] Calculate and Measure Performance budgets with the Angular CLI

    Measuring is extremely important, without numbers we don’t know about potential problems and we don’ ...

  8. 007——转载-MATLAB读取文件夹下的文件名

    (一)参考文献:https://blog.csdn.net/liutaojia/article/details/84899923 (二)第一步:获取文件夹下某类型数据的所有文件名 主要包括三个步骤: ...

  9. JAVA的选择结构

    1.基本选择结构if 案例:如果Java考试成绩大于98分则奖励MP4 public class Demo02 {                    public static void main ...

  10. 四十五.加密与解密 AIDE入侵检测系统 扫描与抓包

    一.加密与解密 1.1 常见的加密算法 对称加密:怎么加密,就怎么解密 DES Date Encryption Standard AES Advance Encryption Standard 非对称 ...