JSON类库 Flexjson学习
官方地址(需翻墙):http://flexjson.sourceforge.net/
Flexjson 是一个将 Java 对象转成 JSON 的 类库,是一个深度转换的过程。
下面是我写的一个例子:http://download.csdn.net/detail/zzhd_xingfu/5885183
Main.java
package com.flexjson.main; import java.util.ArrayList;
import java.util.List; import com.flexjson.model.InterestModel;
import com.flexjson.model.TelModel;
import com.flexjson.model.UserModel; public class Main { /**
* @param args
*/
public static void main(String[] args) {
testJsonUtil();
} public static void testJsonUtil() {
// Json String to Java object
String json1 = "{\"ims\":[{\"name\":\"篮球\"},{\"name\":\"足球\"}],\"tm\":{\"number\":\"15896352635\",\"type\":\"手机号\"},\"passWord\":\"123\",\"userName\":\"admin\"}";
UserModel um1 = JsonUtil.getObjFromJsonStr(json1, UserModel.class);
System.out.println(um1.toString());
// /////////////////////////////////////////////// // Java object to JSON String 简单的Object
UserModel um2 = new UserModel();
um2.setUserName("admin");
um2.setPassWord("123");
System.out.println(JsonUtil.getJsonStrFromObj(um2));
// /////////////////////////////////////////////// // Java object to JSON String 复杂的Object
UserModel um3 = new UserModel();
um3.setUserName("admin");
um3.setPassWord("123");
List<InterestModel> ims = new ArrayList<InterestModel>();
InterestModel im1 = new InterestModel();
im1.setName("篮球");
InterestModel im2 = new InterestModel();
im2.setName("足球");
ims.add(im1);
ims.add(im2);
um3.setIms(ims);
TelModel tm = new TelModel();
tm.setNumber("15896352635");
tm.setType("手机号");
um3.setTm(tm);
String json3 = JsonUtil.getJsonStrFromObj(um3, "ims", "tm");
System.out.println(json3);
// /////////////////////////////////////////////// // List to JSON String
UserModel um4_1 = new UserModel();
um4_1.setUserName("admin_1");
um4_1.setPassWord("123_1");
List<InterestModel> ims4_1 = new ArrayList<InterestModel>();
InterestModel im4_1_1 = new InterestModel();
im4_1_1.setName("篮球_1");
InterestModel im4_1_2 = new InterestModel();
im4_1_2.setName("足球_1");
ims4_1.add(im4_1_1);
ims4_1.add(im4_1_2);
um4_1.setIms(ims4_1);
TelModel tm4_1 = new TelModel();
tm4_1.setNumber("15896352635_1");
tm4_1.setType("手机号_1");
um4_1.setTm(tm4_1); UserModel um4_2 = new UserModel();
um4_2.setUserName("admin_2");
um4_2.setPassWord("123_2");
List<InterestModel> ims4_2 = new ArrayList<InterestModel>();
InterestModel im4_2_1 = new InterestModel();
im4_2_1.setName("篮球_2");
InterestModel im4_2_2 = new InterestModel();
im4_2_2.setName("足球_2");
ims4_2.add(im4_2_1);
ims4_2.add(im4_2_2);
um4_2.setIms(ims4_2);
TelModel tm4_2 = new TelModel();
tm4_2.setNumber("15896352635_2");
tm4_2.setType("手机号_2");
um4_2.setTm(tm4_2); List<Object> list = new ArrayList<Object>();
list.add(um4_1);
list.add(um4_2);
System.out.println(JsonUtil.getJsonStrFromList(list, "User", "ims", "tm"));
// /////////////////////////////////////////////// }
}
JsonUtil.java
package com.flexjson.main; import java.util.List; import flexjson.JSONDeserializer;
import flexjson.JSONSerializer; public class JsonUtil { // Java object to JSON String
public static String getJsonStrFromObj(Object obj) {
JSONSerializer serializer = new JSONSerializer();
return serializer.serialize(obj);
} // Java object to JSON String
public static String getJsonStrFromObj(Object obj, String... params) {
JSONSerializer serializer = new JSONSerializer();
serializer = serializer.include(params);
return serializer.serialize(obj);
} // List to JSON String
public static String getJsonStrFromList(List<Object> objs, String rootName,
String... params) {
JSONSerializer serializer = new JSONSerializer();
serializer = serializer.include(params);
serializer.rootName(rootName);
return serializer.serialize(objs);
} // Json String to Java object
public static <T> T getObjFromJsonStr(String source, Class<T> bean) {
return new JSONDeserializer<T>().deserialize(source, bean);
} }
UserModel.java
/**
*
*/
package com.flexjson.model; import java.util.List; /**
* @author Administrator
*
*/
public class UserModel {
private String userName;// 用户名
private String passWord;// 密码
private List<InterestModel> ims;
private TelModel tm; public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassWord() {
return passWord;
} public void setPassWord(String passWord) {
this.passWord = passWord;
} public List<InterestModel> getIms() {
return ims;
} public void setIms(List<InterestModel> ims) {
this.ims = ims;
} public TelModel getTm() {
return tm;
} public void setTm(TelModel tm) {
this.tm = tm;
} @Override
public String toString() {
return "userName=" + userName + "; passWord=" + passWord + ";";
} }
TelModel.java
package com.flexjson.model; public class TelModel {
private String number;
private String type; public String getType() {
return type;
} public void setType(String type) {
this.type = type;
} public String getNumber() {
return number;
} public void setNumber(String number) {
this.number = number;
} }
InterestModel.java
package com.flexjson.model; public class InterestModel {
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}
JSON类库 Flexjson学习的更多相关文章
- 基于WinCE的JSON 类库 源码
基于WinCE的JSON 类库,可以将对象序列化成字符串和文件. 提示,其在反序列化时有一个BUG: 如果对象的某个字段值为 null,将其序列化成字符串,然后将该字符串反序列化成对象时会报异常. 这 ...
- 两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)
本篇文章主要介绍了"两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)",主要涉及到两款JSON类库Jackson与JSON-lib的性能对比(新增第三款 ...
- Atitit.json类库的设计与实现 ati json lib
Atitit.json类库的设计与实现 ati json lib 1. 目前jsonlib库可能有问题,可能版本冲突,抛出ex1 2. 解决之道:1 2.1. 自定义json解析库,使用多个复合的js ...
- jacascript JSON对象的学习
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! JSON (javascript object notation) 全称是 javascript 对象表示 ...
- JSON类库Jackson与JSON-lib性能对比[转]
Jackson:http://jackson.codehaus.org/ JSON-lib:http://json-lib.sourceforge.net/ Gson:http://code.goog ...
- apache commons类库的学习
原文地址http://www.tuicool.com/articles/iyEbquE 1.1. 开篇 在Java的世界,有很多(成千上万)开源的框架,有成功的,也有不那么成功的,有声名显赫的,也有默 ...
- JSON类库Jackson优雅序列化Java枚举类
1. 前言 在Java开发中我们为了避免过多的魔法值,使用枚举类来封装一些静态的状态代码.但是在将这些枚举的意思正确而全面的返回给前端却并不是那么顺利,我们通常会使用Jackson类库序列化对象为JS ...
- 手写Json解析器学习心得
一. 介绍 一周前,老同学阿立给我转了一篇知乎回答,答主说检验一门语言是否掌握的标准是实现一个Json解析器,网易游戏过去的Python入门培训作业之一就是五天时间实现一个Json解析器. 知乎回答- ...
- 原生态的ajax 及json和gson学习资源
@RequestMapping(value = "/{id}/view") @jsobody public String viewProject( @PathVariable(&q ...
随机推荐
- 联想服务器X3850 X6 配置RAID5
实验环境: 1. 服务器型号 联想 System X3850 X6 2. 四块300G SAS硬盘 实验目的: 配置RAID 5 ,搭建公司重要文件共享服务器使用. 标注:本教程四块硬盘全做RA ...
- 3d md5 demo
描述:场景3dmax做的,随便拖的几个东西 模型玩过游戏的都知道是doom3的怪兽猪脚 音频是openal播放的wav文件 下载地址:http://pan.baidu.com/s/1eQ8SYI2
- 创建 React-Native 工程时,如何指定特定的 React-Native 版本
react-native 可能会出现一种情况,就是版本最高的可能出现有些东西不太稳定,这时候要用到旧的版本怎么办?就可以用以下方法创建项目. 0. 原因 创建新的 React-Native (以下简称 ...
- 关于SpringMVC Json使用
很简单的一个东西,这里就不做过多介绍了,写一个小Demo,随手记录下. 首先,在搭好SpringMVC工程环境之后,如果想用Spring自带的Json,需要额外的添加2个JAR包: 1.jackson ...
- php创建文件夹
$dir = iconv("UTF-8", "GBK", "Public/bookcover"); if (!file_exists($di ...
- protected: C++ access control works on per-class basis, not on per-object basis
一个很简单的问题: //为什么BASE::foo()中可以直接通过p访问val? 看本记录标题,这个问题困扰了很长一段时间,终于解决class BASE { private: ...
- kuser_cmpxchg_check 原子操作
对于ARM体系结构,每一个由用户态到内核态的中断或异常处理路径都经过kuser_cmpxchg_check,kuser_cmpxchg_check中检查被中断的地址是否大于TASK_SIZE:TASK ...
- iOS模拟(糟糕的)网络环境
有时候为了模拟在糟糕的网络环境下app的表现,会故意拔网线(断wifi),苹果其实提供了专门的工具来精确地模拟你在几个预设的场景下的网络连接情况:Network Link Conditioner 点击 ...
- Android开发中常用的库总结(持续更新)
这篇文章用来收集Android开发中常用的库,都是实际使用过的.持续更新... 1.消息提示的小红点 微信,微博消息提示的小红点. 开源库地址:https://github.com/stefanjau ...
- 纯CSS制作的TAB选项卡
代码 这里主要使用表单的单选按钮来实现这个TAB显示和隐藏,首页tab里的内容默认隐藏,如果单选按钮为选中状态(checked)就显示内容.具体请看下面代码. 关于兼容性,因为是用CSS3来制作的,所 ...