使用FastJSON,将对象或数组和JSON串互转
Fastjson,是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库。
其开源的下载网址为:https://github.com/AlibabaTech/fastjson。
示例代码如下:
- package test;
- import java.util.ArrayList;
- import java.util.List;
- import com.alibaba.fastjson.JSON;
- class User {
- private String name;
- private int age;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- @Override
- public String toString() {
- return "User [name=" + name + ", age=" + age + "]";
- }
- };
- class UserGroup {
- private String name;
- private List<User> users = new ArrayList<User>();
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public List<User> getUsers() {
- return users;
- }
- public void setUsers(List<User> users) {
- this.users = users;
- }
- @Override
- public String toString() {
- return "UserGroup [name=" + name + ", users=" + users + "]";
- }
- }
- class FastJsonTest {
- public static void main(String[] args) {
- // 构建用户geust
- User guestUser = new User();
- guestUser.setName("guest");
- guestUser.setAge(28);
- // 构建用户root
- User rootUser = new User();
- rootUser.setName("root");
- guestUser.setAge(35);
- // 构建用户组对象
- UserGroup group = new UserGroup();
- group.setName("admin");
- group.getUsers().add(guestUser);
- group.getUsers().add(rootUser);
- // 用户组对象转JSON串
- String jsonString = JSON.toJSONString(group);
- System.out.println("jsonString:" + jsonString);
- // JSON串转用户组对象
- UserGroup group2 = JSON.parseObject(jsonString, UserGroup.class);
- System.out.println("group2:" + group2);
- // 构建用户对象数组
- User[] users = new User[2];
- users[0] = guestUser;
- users[1] = rootUser;
- // 用户对象数组转JSON串
- String jsonString2 = JSON.toJSONString(users);
- System.out.println("jsonString2:" + jsonString2);
- // JSON串转用户对象列表
- List<User> users2 = JSON.parseArray(jsonString2, User.class);
- System.out.println("users2:" + users2);
- }
- }
输出如下:
- jsonString:{"name":"admin","users":[{"age":35,"name":"guest"},{"age":0,"name":"root"}]}
- group2:UserGroup [name=admin, users=[User [name=guest, age=35], User [name=root, age=0]]]
- jsonString2:[{"age":35,"name":"guest"},{"age":0,"name":"root"}]
- users2:[User [name=guest, age=35], User [name=root, age=0]]
使用FastJSON,将对象或数组和JSON串互转的更多相关文章
- JavaScriptES6中Map与对象、数组,JSON之间的相互转换
JavaScriptES6中Map与对象.数组,JSON之间的相互转换 https://blog.csdn.net/c__dreamer/article/details/82183130
- iOS 字典或者数组和JSON串的转换
在和服务器交互过程中,会iOS 字典或者数组和JSON串的转换,具体互换如下: // 将字典或者数组转化为JSON串 + (NSData *)toJSONData:(id)theData { NSEr ...
- Java 对象,数组 与 JSON 字符串 相互转化
当 Java 对象中包含 数组集合对象时,将 JSON 字符串转成此对象. public class Cart{} public class MemberCoupon{} public class C ...
- javascript 中的JSON.stringify - 将对象和数组转换为json格式(来源于网络)
JSON.stringify 函数 (JavaScript) 将 JavaScript 值转换为 JavaScript 对象表示法 (Json) 字符串. JSON.stringi ...
- java对象与json串互转
1:java对象与json串转换: java对象—json串: JSONObject JSONStr = JSONObject.fromObject(object); String str = JSO ...
- 前端表单序列化为json串,以及构造json数组、json串
var parm={ username:"zhangsan", age:24, email:"352400260@qq.com" }; console.log( ...
- js Json与对象、数组转化
对象.数组转json json = JSON.stringify(obj) json 转对象.数组 arr = JSON.parse(json)
- PHP 多维数组转json对象
PHP 多维数组转json对象 php 数组转json对象,可能大家都知道要用json_encode,但是转换出来的格式多有不同,此处做个小小的记录! 1. 一维数组转json对象 <?php ...
- 比较任意两个JSON串是否相等(比较对象是否相等)JAVA版
废话少说,直接入题. 在面向对象语言中,经常会比较两个对象是否相等,而比较的大多是实体类实例,也就是封装数据的那些类实例,或者是Map.List互相嵌套成的复杂数据结构. 比较对象是否相等,常见的思路 ...
随机推荐
- 开源战棋 SLG 游戏框架设计思考(一)简介和游戏引擎
战棋 SLG 游戏 SLG(Simulation Game)游戏是模拟游戏的简称.战棋类的SLG有两种:一种是 War Game 中的兵棋推演分支,常见的游戏有战争艺术3(TOAW3 — The Op ...
- Android如何做到应用程序图标隐藏,由第三方程序启动
在你App的AndroidManifest.xml中,将启动页做如下修改 <intent-filter> <action android:name="android.int ...
- infinitynewtab 背景api
http://img.infinitynewtab.com/wallpaper/527.jpg 图片 1-4050
- 总结-eclipse
1.eclipse的workspace历史记录 打开eclipse/configuration/.settings/org.eclipse.ui.ide.prefs,把RECENT_WORKSPACE ...
- rabbitmq method之basic.consume
basic.consume指的是channel在 某个队列上注册消费者,那在这个队列有消息来了之后,就会把消息转发到给此channel处理,如果 这个队列有多个消费者,则会采用轮转的方式将消息分发给消 ...
- css线性渐变--linear-gradient
使用css直接写渐变,对于现在而言,应该属于比价简单的一件事了,在一定程度上,扁平化的设计趋势的出现,减少了使用渐变色的场景,但是并不影响我们逐渐的熟悉线性渐变Linear-gradient的写法. ...
- lodash 替换 underscore
不少知名项目都在用lodash替换underscore lodash Lazy evaluation 英文原文:http://filimanjaro.com/blog/2014/introducin ...
- VS2013自带的Browser Link功能引发浏览localhost网站时不停的轮询
浏览localhost网站时候不管你打开那个页面它都会不停的轮询.据悉这是VS2013自带的Browser Link功能,里面用到SignalR机制 什么是Browser Link功能,什么是Sign ...
- php代码性能分析方法
1.用到的函数 microtime() ,函数返回当前 Unix 时间戳和微秒数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00 ...
- error: RPC failed; result=22, HTTP code = 411
git config http.postBuffer 524288000orgit config --system http.postBuffer 524288000