Fastjson,是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库。
其开源的下载网址为:https://github.com/AlibabaTech/fastjson

示例代码如下:

  1. package test;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.alibaba.fastjson.JSON;
  5. class User {
  6. private String name;
  7. private int age;
  8. public String getName() {
  9. return name;
  10. }
  11. public void setName(String name) {
  12. this.name = name;
  13. }
  14. public int getAge() {
  15. return age;
  16. }
  17. public void setAge(int age) {
  18. this.age = age;
  19. }
  20. @Override
  21. public String toString() {
  22. return "User [name=" + name + ", age=" + age + "]";
  23. }
  24. };
  25. class UserGroup {
  26. private String name;
  27. private List<User> users = new ArrayList<User>();
  28. public String getName() {
  29. return name;
  30. }
  31. public void setName(String name) {
  32. this.name = name;
  33. }
  34. public List<User> getUsers() {
  35. return users;
  36. }
  37. public void setUsers(List<User> users) {
  38. this.users = users;
  39. }
  40. @Override
  41. public String toString() {
  42. return "UserGroup [name=" + name + ", users=" + users + "]";
  43. }
  44. }
  45. class FastJsonTest {
  46. public static void main(String[] args) {
  47. // 构建用户geust
  48. User guestUser = new User();
  49. guestUser.setName("guest");
  50. guestUser.setAge(28);
  51. // 构建用户root
  52. User rootUser = new User();
  53. rootUser.setName("root");
  54. guestUser.setAge(35);
  55. // 构建用户组对象
  56. UserGroup group = new UserGroup();
  57. group.setName("admin");
  58. group.getUsers().add(guestUser);
  59. group.getUsers().add(rootUser);
  60. // 用户组对象转JSON串
  61. String jsonString = JSON.toJSONString(group);
  62. System.out.println("jsonString:" + jsonString);
  63. // JSON串转用户组对象
  64. UserGroup group2 = JSON.parseObject(jsonString, UserGroup.class);
  65. System.out.println("group2:" + group2);
  66. // 构建用户对象数组
  67. User[] users = new User[2];
  68. users[0] = guestUser;
  69. users[1] = rootUser;
  70. // 用户对象数组转JSON串
  71. String jsonString2 = JSON.toJSONString(users);
  72. System.out.println("jsonString2:" + jsonString2);
  73. // JSON串转用户对象列表
  74. List<User> users2 = JSON.parseArray(jsonString2, User.class);
  75. System.out.println("users2:" + users2);
  76. }
  77. }

输出如下:

    1. jsonString:{"name":"admin","users":[{"age":35,"name":"guest"},{"age":0,"name":"root"}]}
    2. group2:UserGroup [name=admin, users=[User [name=guest, age=35], User [name=root, age=0]]]
    3. jsonString2:[{"age":35,"name":"guest"},{"age":0,"name":"root"}]
    4. users2:[User [name=guest, age=35], User [name=root, age=0]]

使用FastJSON,将对象或数组和JSON串互转的更多相关文章

  1. JavaScriptES6中Map与对象、数组,JSON之间的相互转换

    JavaScriptES6中Map与对象.数组,JSON之间的相互转换 https://blog.csdn.net/c__dreamer/article/details/82183130

  2. iOS 字典或者数组和JSON串的转换

    在和服务器交互过程中,会iOS 字典或者数组和JSON串的转换,具体互换如下: // 将字典或者数组转化为JSON串 + (NSData *)toJSONData:(id)theData { NSEr ...

  3. Java 对象,数组 与 JSON 字符串 相互转化

    当 Java 对象中包含 数组集合对象时,将 JSON 字符串转成此对象. public class Cart{} public class MemberCoupon{} public class C ...

  4. javascript 中的JSON.stringify - 将对象和数组转换为json格式(来源于网络)

          JSON.stringify 函数 (JavaScript) 将 JavaScript 值转换为 JavaScript 对象表示法 (Json) 字符串.     JSON.stringi ...

  5. java对象与json串互转

    1:java对象与json串转换: java对象—json串: JSONObject JSONStr = JSONObject.fromObject(object); String str = JSO ...

  6. 前端表单序列化为json串,以及构造json数组、json串

    var parm={ username:"zhangsan", age:24, email:"352400260@qq.com" }; console.log( ...

  7. js Json与对象、数组转化

    对象.数组转json json = JSON.stringify(obj) json 转对象.数组 arr = JSON.parse(json)

  8. PHP 多维数组转json对象

    PHP 多维数组转json对象 php 数组转json对象,可能大家都知道要用json_encode,但是转换出来的格式多有不同,此处做个小小的记录! 1. 一维数组转json对象 <?php ...

  9. 比较任意两个JSON串是否相等(比较对象是否相等)JAVA版

    废话少说,直接入题. 在面向对象语言中,经常会比较两个对象是否相等,而比较的大多是实体类实例,也就是封装数据的那些类实例,或者是Map.List互相嵌套成的复杂数据结构. 比较对象是否相等,常见的思路 ...

随机推荐

  1. 打包ipa出现问题记录

    1.打包ipa事,Archive出现问题 解决方法:Xcode->系统偏好设置->Accounts->选中正在使用的账户->view details->download ...

  2. HTML基础篇之图像热区补充一下图片相对地址的定义

    HTML5课堂笔记理解2 上次说到图片相对地址的定义,举例了4中情形的下的不同目录的图片书写方法补充一个如果你要的图片目录跟上面四种都不一样话可以用以下属性值尝试 ./            当前目录 ...

  3. vim操作

    2.vi的基本操作 a) 进入vi    在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ vi myfile 不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(comm ...

  4. ueditor插件简单使用

    下载地址:http://ueditor.baidu.com/website/download.html 建议同时下载所需版本及完整源码.   [ 1.4.3 JSP + 完整源码src ] 简单配置说 ...

  5. Rails--n+1查询

    listings = Listing.includes(:property).where(id: ids)

  6. Sql 常见问题

    join on and vs join on where SELECT * FROM Orders LEFT JOIN OrderLines ON OrderLines.OrderID=Orders. ...

  7. [lua大坑]一个莫名其妙的lua执行时崩溃引出的堆栈大小问题

    这是一个坑,天坑!如果不是我随手删除了一个本地变量,这个问题直到现在我应该也没有头绪. 首先,写了一个新的lua脚本,载入,执行.在执行的时候,出了这么一个莫名其妙的问题: EXC_BAD_ACCES ...

  8. Objective的字符串拼接 似乎没有Swift方便,但也可以制做一些较为方便的写法

    NSString *str1 = @"字符串1"; NSString *str2 = @"字符串2"; //在同样条件下,Objective的字符串拼接 往往只 ...

  9. scala中的数组的转换操作

    1.共有两种操作 转换成一种新的数组 2.yield转换 3.函数式编程转换

  10. imx6 Image Vector Table (IVT)

    imx6开启启动之后,运行板子上的ROM程序.ROM确定启动的设备,进行一些初始化,然后读取IVT,进行寄存器初始化,最后运行uboot/cpu/arm_cortexa8/start.S中的_star ...