alibaba的架包FastJson可以对json字符串进行快捷的类型转换。下面是一些各种类型转换的使用例子。

一、下载FastJson的架包,并导入项目中,如下:

Maven项目pom.xml配置如下:

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>fastjson</artifactId>
  4. <version>1.2.32</version>
  5. </dependency>

二、附上代码例子,如下:

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、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. }
  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.  
  29. private static void json2JavaBean() {
  30. String s = "{\"id\":\"17051801\",\"name\":\"lucy\"}";
  31. User user = JSON.parseObject(s, User.class);
  32. System.out.println(user.getId());
  33. System.out.println(user.getName());
  34. }
  35.  
  36. private static void json2JsonArray() {
  37. String s = "[{\"id\":\"17051801\",\"name\":\"lucy\"},{\"id\":\"17051802\",\"name\":\"peter\"}]";
  38. JSONArray array = JSON.parseArray(s);
  39. for (int i = 0; i < array.size(); i++) {
  40. //JSONArray中的数据转换为String类型需要在外边加"";不然会报出类型强转异常!
  41. String str = array.get(i)+"";
  42. JSONObject object = JSON.parseObject(str);
  43. System.out.println(object.get("name"));
  44. }
  45. }
  46.  
  47. private static void json2JavaBeanList() {
  48. String s = "[{\"id\":\"17051801\",\"name\":\"lucy\"},{\"id\":\"17051802\",\"name\":\"peter\"}]";
  49. List<User> list = JSON.parseArray(s, User.class);
  50. for (User user : list) {
  51. System.out.println(user.getName());
  52. }
  53. }
  54.  
  55. private static void javaBean2Json() {
  56. User user = new User("17051801", "lucy");
  57. String string = JSON.toJSONString(user);
  58. System.out.println(string);
  59. }
  60.  
  61. private static void javaBean2JsonObject() {
  62. User user = new User("17051801", "lucy");
  63. JSONObject json = (JSONObject) JSON.toJSON(user);
  64. System.out.println(json.get("id"));
  65. }
  66.  
  67. private static void json2ListInMap() {
  68. String s = "{json:[{id:\"17051801\",\"name\":\"lucy\"},{id:\"17051802\",\"name\":\"peter\"},"
  69. + "{id:\"17051803\",\"name\":\"tom\"},{id:\"17051804\",\"name\":\"lily\"}]}";
  70. //将Json字符串转换为JSONObject对象,并取出list对象的值
  71. JSONObject object = JSON.parseObject(s);
  72. Object objArray = object.get("json");
  73. String str = objArray+"";
  74. //方式1:转换成JSONArray对象形式
  75. JSONArray array = JSON.parseArray(str);
  76. for (int i = 0; i < array.size(); i++) {
  77. JSONObject obj = JSON.parseObject(array.get(i)+"");
  78. System.out.println(obj.get("name"));
  79. }
  80. //方式2:转换成List<JavaBean>形式
  81. List<User> list = JSON.parseArray(str, User.class);
  82. for (User user : list) {
  83. System.out.println(user.getName());
  84. }
  85. }
  86.  
  87. private static void list2JsonInMap() {
  88. //方式1:构建一个带有list的JavaBean对象
  89. School school = new School();
  90. school.setId("1");
  91. school.setName("schoolA");
  92.  
  93. User user1 = new User();
  94. user1.setId("17051801");
  95. user1.setName("lucy");
  96. User user2 = new User();
  97. user2.setId("17051802");
  98. user2.setName("peter");
  99.  
  100. school.getStudents().add(user1);
  101. school.getStudents().add(user2);
  102. //将JavaBean对象转换成Json字符串
  103. String string1 = JSON.toJSONString(school);
  104. System.out.println(string1);
  105.  
  106. //方式2:构建一个带有list的Map对象
  107. Map<String, Object> map1 = new HashMap<String,Object>();
  108. map1.put("id", "17051801");
  109. map1.put("name", "lucy");
  110.  
  111. Map<String, Object> map2 = new HashMap<String,Object>();
  112. map2.put("id", "17051802");
  113. map2.put("name", "peter");
  114.  
  115. List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
  116. list.add(map1);
  117. list.add(map2);
  118.  
  119. Map<String, Object> map = new HashMap<String,Object>();
  120. map.put("id", "1");
  121. map.put("name", "schoolA");
  122. map.put("students", list);
  123. //将map对象转换成Json字符串
  124. String string2 = JSON.toJSONString(map);
  125. System.out.println(string2);
  126. }
  127. }

alibaba架包FastJson使用例子的更多相关文章

  1. JSONObject相关依赖架包下载(Maven依赖下载)

    一.开发场景Java开发当中经常需要Json格式的数据,这就用到JSONObject类,本文章只提供以下两种JSONObject对应架包的下载方式.1.com.alibaba.fastjson.JSO ...

  2. 【报错】spring整合activeMQ,pom.xml文件缺架包,启动报错:Caused by: java.lang.ClassNotFoundException: org.apache.xbean.spring.context.v2.XBeanNamespaceHandler

    spring版本:4.3.13 ActiveMq版本:5.15 ======================================================== spring整合act ...

  3. Spring 框架的架包分析、功能作用、优点,及jar架包简介

    Spring 框架的架包详解    Spring的作用     Spring的优势  由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或 ...

  4. Spring MVC 框架的架包分析,功能作用,优点

    由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j ...

  5. 【pom.xml 依赖】使用net.sf.json-lib-2.4-jdk15.jar所需要的其他依赖架包 以及其一直在pom.xml报错的问题

    特此声明: json-lib-2.4-jdk15.jar仅它本身不够,必须如下的几个依赖架包都有才能使用!!! 首先 将.json-lib-2.4-jdk15.jar以及其相关的依赖架包的正确配置给出 ...

  6. Maven管理项目架包

    最近一直在用Maven管理项目的架包,从而发现了几个不错的官方或者非官方的网站. http://mvnrepository.com/artifact/com.ning  这个是我刚刚用来找HTTP开发 ...

  7. 解决npm install安装了太多架包的问题

    比如我安装gulp时,会多出很多无用的包,如下图: 经过查询,原来是npm升级了导致的,在npm3.0以上的版本,包的依赖不再安装在每个架包的node_modules文件夹内,而是安装在顶层的node ...

  8. Android高效率编码-细节,控件,架包,功能,工具,开源汇总,你想要的这里都有

    Android高效率编码-细节,控件,架包,功能,工具,开源汇总 其实写博客的初衷也并不是说什么分享技术,毕竟咱还只是个小程序员,最大的目的就是对自我的知识积累,以后万一编码的时候断片了,也可以翻出来 ...

  9. java 发架包

    // 完整发布流程 clean compile deploy install -U -DskipTests // 把架包安装到本地,跳过测试 install -Dmaven.test.skip=tru ...

随机推荐

  1. JPG .vs. PNG

    A summary of comparison between JPEG and PNG JPEG Pros Smaller file size than PNG Widely suppported ...

  2. linux搭建SS服务

    基本准备: 购买主机:www.virmach.com LINUX系统操作经验:vim , apt-get 等命令的使用 putty.exe连接ssh工具的使用 开始 使用putty连接上去,并输入密码 ...

  3. 【ASP.NET Core】准备工作:在 Windows 10 上配置 Linux 子系统

    ASP.NET Core 其实比传统的 ASP.NET 要简单很多,而且也灵活很多,并且可以跨平台独立运行. 在 Windows 平台上,我们只要在安装 Visual Studio 的时候选择跨平台的 ...

  4. Windows下使用pip安装mysql-python

    安装的过程很煎熬,留个爪,希望对其他人有帮助. 先声明我安装前的电脑配置: Win10: Python2和Python3共存(备注一个好用的方法,感谢知乎大神:https://www.zhihu.co ...

  5. Python3 决策树

    # -*- coding: utf-8 -*-"""Created on Fri Dec 29 10:18:04 2017 @author: markli"&q ...

  6. UINavigationController 返回手势与 leftBarButtonItem

    UINavigationController 返回手势与 leftBarButtonItem UINavigationController 自带从屏幕左侧边缘向右滑动的返回手势,可以通过这个手势实现 ...

  7. MongoDB入门学习笔记之简介与安装配置

    一.MongoDB简介 1.文档数据库 MongoDB是一款开源的文档型非关系数据库,具有高性能.高可靠性和自动扩展等特点.MongoDB中的每一条记录是一个文档,其数据存储结构为键/值对,类似JSO ...

  8. 《SpringMVC从入门到放肆》三、DispatcherServlet的url-pattern配置详解

    上一篇我们详细解释了一下SrpingMVC的执行流程以及一些默认的配置,在Spring的思想中,就是默认大于配置.今天我们来详细的研究一下DispatcherServlet的url-pattern配置 ...

  9. MATLAB学习笔记

    魔方矩阵(magic(阶数)) 魔方矩阵又称幻方,是有相同的行数和列数,并在每行每列.对角线上的和都相等的矩阵.魔方矩阵中的每个元素不能相同.你能构造任何大小(除了2x2)的魔方矩阵. 希尔伯特矩阵( ...

  10. Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals)爆零记

    昨晚一个瓜皮说今晚有cf,听说是晚间场,我瞅了一眼,娃,VK Cup,上分的好机会,看着比赛时间就有点心酸了,0:35,当时一直在纠结要不要打的问题,当时想着应该不难吧,要不打一下吧,要不还是看看题先 ...