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. 一、jquery简介

    认识jquery jquery是有美国人John Resig于2006年创建的一个开元项目,随着被人们的熟知,越来越多的程序高手加入其中,完善和壮大其项目内容:如今已开展成为集javascript.c ...

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

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

  3. Xamarin.iOS Unified API 注意要点

    新数据类型 NATIVE TYPE 32-BIT BACKING TYPE 64-BIT BACKING TYPE System.nint System.Int32 (int) System.Int6 ...

  4. JQ第二天

    一.属性.表单过滤选择器 $("div[id]")选取有id属性的<div>//$("div [id]")有空格表示div层当中有id属性的元素 $ ...

  5. mvc 3 Mvc 4 使用Forms 登录验证随笔一

    前言 本人虽然做 .Net 也有五年有余,可是没什么大才,总是干些打杂的活,技术很少差劲呀.以前不管是做内部管理系统,还是企业平台,保存用户登录信息用的都是Session,也许是从一开始就接触Sess ...

  6. vuejsLearn---通过手脚架快速搭建一个vuejs项目

    开始快速搭建一个项目 通过Webpack + vue-loader 手脚架 https://github.com/vuejs-templates/webpack 按照它的步骤一步一步来 $ npm i ...

  7. magento搬家

    将原来网站文件中的var文件中的cache和session文件删除,将media中的缓存文件删除.然后将所有文件制作成一个压缩包,以减少文件体积,方便转移. 将压缩包转移到新的服务器域名指向的文件夹, ...

  8. Emacs 16进制模式

    http://blog.163.com/lan_ne/blog/static/1926701702012112272840545/ ALT+X hexl-mode   进入16进制模式 在这一模式,直 ...

  9. An error occurred while processing an SVN command

    今天在使用SmartSVN的时候,遇到这个问题,反复几次,也没有得到解决,而且进入了死循环,一直在提示这个消息,即使在cleanup之后. 百度了一番之后,找到了解决办法: 把出错的文件在本地删除掉, ...

  10. ACM集训的Training Day 3的A题。。。

    A. 等差数列 一.题目描述: 一个等差数列是一个能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)的数列. 在这个问题中a是一个非负的整数,b是正整数.写一个程序来 ...