转:

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. Oracle前期工具【1】

    目录: 1.oracle下载安装[Oracle11g] 2.Oracle客户端工具下载安装 [sqldeveloper.exe] 3.cmd进入Oracle命令界面操作 4.客户端图形化命令操作 or ...

  2. python中部分数据类型及其使用方法

    1.数据类型: int:整数 str:字符串,一般不存放大量的数据 bool:布尔值,用来判断 只有两个值 True False  list:列表,用来存放大量数据[]来表示,里面可以放任何数据类型 ...

  3. region特征

    一: 查看阈值之后的region特征,可以通过特征检测来看,在工具栏上 region特征分三部分: 1.基础特征: region面积,中心,宽高,左上角及右下角坐标,长半轴短半轴椭圆方向,洞数及其面积 ...

  4. plsql工具使用

    作者:lhrbest 作者:张冲andy 作者:jack_孟

  5. 树状数组例题-数星星,简单题easy,校门外的树2,清点人数

    [例1]数星星 天空中有一些星星,这些星星都在不同的位置,每个星星都有个坐标,如果一个星星的左下方(包括正左和正下)有k颗星星,就说这颗星星是k级的. 比如,上图中,星星5是3级的(1,2,4在其左下 ...

  6. eclipse和scala整合,打包配置文件及打包步骤

    我写的是maven项目,pom文件为: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...

  7. 062_判断用户输入的是 Yes 或 NO

    #!/bin/bashread -p "Are you sure?[y/n]:" surecase $sure iny|Y|Yes|YES)     echo "you ...

  8. QVariantMap 和 QVariant

    typedef QVariantMap Synonym for(同义词) QMap<QString, QVariant>. QVariant类型的放入和取出必须是相对应的,你放入一个int ...

  9. Python多线程笔记(二)

    Lock对象 原语锁(互斥锁)是一个同步原语,状态是"已锁定"或者"未锁定"之一.两个方法acquire()和release()用于修改锁的状态.如果状态为已锁 ...

  10. loj3120 「CTS2019 | CTSC2019」珍珠

    link .... 感觉自己太颓废了....还是来更题解吧...[话说写博客会不会涨 rp 啊 qaq ? 题意: 有 n 个物品,每个都有一个 [1,D] 中随机的颜色,相同颜色的两个物品可以配对. ...