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. C++STL -- vector实现

    STL的vector简化实现 本质 vector说到底就是一个动态数组,我们需要做的就是管理动态数组的内存,和元素的增加,删除,移动等. template <typename T> cla ...

  2. html中meta的设置

    meta设置 <meta name="viewport" content="width=device-width, initial-scale=1.0, user- ...

  3. AnjularJS异步编程 Promise和$q

    Promise,是一种异步处理模式. js代码的函数嵌套会使得程序执行异步代码时很难调试.因为多重嵌套的函数无法确定何时触发回调. 如: funA(arg1,arg2,function(){ func ...

  4. python学习道路(day8note)(抽象类,类的方法,异常处理,socket编程)

    1.#面向对象 #抽象接口 === 抽象类 #就是架构师给你一个架子,你们去写,如果满足不了直接报错 #python2 print("python2---抽象类".center(2 ...

  5. iOS App Store上架新APP与更新APP版本

    iOS App Store上架新APP与更新APP版本 http://www.jianshu.com/p/9e8d1edca148

  6. How to only capute sub-matched character by grep

    File content: <a href="ceph-0.80.9-82.1.x86_64.rpm"><img src="/icons/rpm.gif ...

  7. vs2015企业版和专业版秘钥

    专业版:HMGNV-WCYXV-X7G9W-YCX63-B98R2企业版:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV 来自http://www.cnblogs.com/xuhongfe ...

  8. 查看apache、linux、kernel、nginx等版本

    查看apache版本 /usr/sbin/apachectl -v httpd -v 安装目录,使用apachectl -v   查看mysql版本 mysql –help | grep Distri ...

  9. hadoop 性能调优与运维

    hadoop 性能调优与运维 . 硬件选择 . 操作系统调优与jvm调优 . hadoop运维 硬件选择 1) hadoop运行环境 2)  原则一: 主节点可靠性要好于从节点 原则二:多路多核,高频 ...

  10. how-to-install-siege-on-centos-7

    https://www.joedog.org/siege-home/ https://roastahost.com/how-to-install-siege-on-centos-7/ (Works!) ...