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. Java Service Wrapper简介与使用

    在实际开发过程中很多模块需要独立运行,他们并不会以web形式发布,传统的做法是将其压缩为jar包独立运行,这种形式简单易行也比较利于维护,但是一旦服务器重启或出现异常时,程序往往无法自行修复或重启.解 ...

  2. cocos2d-x test学习[1]

    controller.cpp std::function<TestScene*()> callback;//一个是返回值,一个是参数.返回值是TestScene*,参数是()里的东西 Co ...

  3. CentOS下设置默认JDK

    最近在弄Linux,用yum源安装opnjdk-devel版本后,用命令ll /etc/alternatives/java查看,发现指向的是jre目录,而不是jdk,在此设置指向jdk目录. 1. 设 ...

  4. 短期连载 第1回 万代南梦宫工作室动画的流派 BNS动作捕捉汐留工作室的采访

    原文链接:http://cgworld.jp/interview/201607-bandainamco.html     因开发了[偶像大师],[铁拳],[XX传说]系列等各种游戏而被广为人知的万代南 ...

  5. 一起来做webgame,《Javascript贪食蛇》

    2019-09-22更新: 使用canvas实现:https://github.com/onlyfu/SnakeSir-Javascript 以下为HTML4实现: 今天来个略有意思的,<贪食蛇 ...

  6. requirejs使用

    实现模块化.按需加载. 一.配置参数. 1.baseUrl:以一个相对于baseUrl的地址来加载所有的代码.   data-main,使用它来启动脚本加载过程,而baseUrl一般设置到与该属性相一 ...

  7. Mysql 获取年级每个班前十学生的信息

    select * from Table1 a where 10>(select count(*) from Table1 where ClsNo=a.ClsNo and Score>a.S ...

  8. jquery easyui tree的全选与反选

    //全选反选 //参数:selected:传入this,表示当前点击的组件 //treeMenu:要操作的tree的id:如:id="userTree" function tree ...

  9. git-credential-winstore.exe": No such file or directory

    $ git push -u origin master\"D:/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe ...

  10. uploadify使用教程

    <div> <input type="file" id="uploadify" name="uploadify" /> ...