官方地址(需翻墙):http://flexjson.sourceforge.net/

Flexjson 是一个将 Java 对象转成 JSON 的 类库,是一个深度转换的过程。

下面是我写的一个例子:http://download.csdn.net/detail/zzhd_xingfu/5885183

Main.java

  1. package com.flexjson.main;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import com.flexjson.model.InterestModel;
  7. import com.flexjson.model.TelModel;
  8. import com.flexjson.model.UserModel;
  9.  
  10. public class Main {
  11.  
  12. /**
  13. * @param args
  14. */
  15. public static void main(String[] args) {
  16. testJsonUtil();
  17. }
  18.  
  19. public static void testJsonUtil() {
  20. // Json String to Java object
  21. String json1 = "{\"ims\":[{\"name\":\"篮球\"},{\"name\":\"足球\"}],\"tm\":{\"number\":\"15896352635\",\"type\":\"手机号\"},\"passWord\":\"123\",\"userName\":\"admin\"}";
  22. UserModel um1 = JsonUtil.getObjFromJsonStr(json1, UserModel.class);
  23. System.out.println(um1.toString());
  24. // ///////////////////////////////////////////////
  25.  
  26. // Java object to JSON String 简单的Object
  27. UserModel um2 = new UserModel();
  28. um2.setUserName("admin");
  29. um2.setPassWord("123");
  30. System.out.println(JsonUtil.getJsonStrFromObj(um2));
  31. // ///////////////////////////////////////////////
  32.  
  33. // Java object to JSON String 复杂的Object
  34. UserModel um3 = new UserModel();
  35. um3.setUserName("admin");
  36. um3.setPassWord("123");
  37. List<InterestModel> ims = new ArrayList<InterestModel>();
  38. InterestModel im1 = new InterestModel();
  39. im1.setName("篮球");
  40. InterestModel im2 = new InterestModel();
  41. im2.setName("足球");
  42. ims.add(im1);
  43. ims.add(im2);
  44. um3.setIms(ims);
  45. TelModel tm = new TelModel();
  46. tm.setNumber("15896352635");
  47. tm.setType("手机号");
  48. um3.setTm(tm);
  49. String json3 = JsonUtil.getJsonStrFromObj(um3, "ims", "tm");
  50. System.out.println(json3);
  51. // ///////////////////////////////////////////////
  52.  
  53. // List to JSON String
  54. UserModel um4_1 = new UserModel();
  55. um4_1.setUserName("admin_1");
  56. um4_1.setPassWord("123_1");
  57. List<InterestModel> ims4_1 = new ArrayList<InterestModel>();
  58. InterestModel im4_1_1 = new InterestModel();
  59. im4_1_1.setName("篮球_1");
  60. InterestModel im4_1_2 = new InterestModel();
  61. im4_1_2.setName("足球_1");
  62. ims4_1.add(im4_1_1);
  63. ims4_1.add(im4_1_2);
  64. um4_1.setIms(ims4_1);
  65. TelModel tm4_1 = new TelModel();
  66. tm4_1.setNumber("15896352635_1");
  67. tm4_1.setType("手机号_1");
  68. um4_1.setTm(tm4_1);
  69.  
  70. UserModel um4_2 = new UserModel();
  71. um4_2.setUserName("admin_2");
  72. um4_2.setPassWord("123_2");
  73. List<InterestModel> ims4_2 = new ArrayList<InterestModel>();
  74. InterestModel im4_2_1 = new InterestModel();
  75. im4_2_1.setName("篮球_2");
  76. InterestModel im4_2_2 = new InterestModel();
  77. im4_2_2.setName("足球_2");
  78. ims4_2.add(im4_2_1);
  79. ims4_2.add(im4_2_2);
  80. um4_2.setIms(ims4_2);
  81. TelModel tm4_2 = new TelModel();
  82. tm4_2.setNumber("15896352635_2");
  83. tm4_2.setType("手机号_2");
  84. um4_2.setTm(tm4_2);
  85.  
  86. List<Object> list = new ArrayList<Object>();
  87. list.add(um4_1);
  88. list.add(um4_2);
  89. System.out.println(JsonUtil.getJsonStrFromList(list, "User", "ims", "tm"));
  90. // ///////////////////////////////////////////////
  91.  
  92. }
  93. }

JsonUtil.java

  1. package com.flexjson.main;
  2.  
  3. import java.util.List;
  4.  
  5. import flexjson.JSONDeserializer;
  6. import flexjson.JSONSerializer;
  7.  
  8. public class JsonUtil {
  9.  
  10. // Java object to JSON String
  11. public static String getJsonStrFromObj(Object obj) {
  12. JSONSerializer serializer = new JSONSerializer();
  13. return serializer.serialize(obj);
  14. }
  15.  
  16. // Java object to JSON String
  17. public static String getJsonStrFromObj(Object obj, String... params) {
  18. JSONSerializer serializer = new JSONSerializer();
  19. serializer = serializer.include(params);
  20. return serializer.serialize(obj);
  21. }
  22.  
  23. // List to JSON String
  24. public static String getJsonStrFromList(List<Object> objs, String rootName,
  25. String... params) {
  26. JSONSerializer serializer = new JSONSerializer();
  27. serializer = serializer.include(params);
  28. serializer.rootName(rootName);
  29. return serializer.serialize(objs);
  30. }
  31.  
  32. // Json String to Java object
  33. public static <T> T getObjFromJsonStr(String source, Class<T> bean) {
  34. return new JSONDeserializer<T>().deserialize(source, bean);
  35. }
  36.  
  37. }

UserModel.java

  1. /**
  2. *
  3. */
  4. package com.flexjson.model;
  5.  
  6. import java.util.List;
  7.  
  8. /**
  9. * @author Administrator
  10. *
  11. */
  12. public class UserModel {
  13. private String userName;// 用户名
  14. private String passWord;// 密码
  15. private List<InterestModel> ims;
  16. private TelModel tm;
  17.  
  18. public String getUserName() {
  19. return userName;
  20. }
  21.  
  22. public void setUserName(String userName) {
  23. this.userName = userName;
  24. }
  25.  
  26. public String getPassWord() {
  27. return passWord;
  28. }
  29.  
  30. public void setPassWord(String passWord) {
  31. this.passWord = passWord;
  32. }
  33.  
  34. public List<InterestModel> getIms() {
  35. return ims;
  36. }
  37.  
  38. public void setIms(List<InterestModel> ims) {
  39. this.ims = ims;
  40. }
  41.  
  42. public TelModel getTm() {
  43. return tm;
  44. }
  45.  
  46. public void setTm(TelModel tm) {
  47. this.tm = tm;
  48. }
  49.  
  50. @Override
  51. public String toString() {
  52. return "userName=" + userName + "; passWord=" + passWord + ";";
  53. }
  54.  
  55. }

TelModel.java

  1. package com.flexjson.model;
  2.  
  3. public class TelModel {
  4. private String number;
  5. private String type;
  6.  
  7. public String getType() {
  8. return type;
  9. }
  10.  
  11. public void setType(String type) {
  12. this.type = type;
  13. }
  14.  
  15. public String getNumber() {
  16. return number;
  17. }
  18.  
  19. public void setNumber(String number) {
  20. this.number = number;
  21. }
  22.  
  23. }

InterestModel.java

  1. package com.flexjson.model;
  2.  
  3. public class InterestModel {
  4. private String name;
  5.  
  6. public String getName() {
  7. return name;
  8. }
  9.  
  10. public void setName(String name) {
  11. this.name = name;
  12. }
  13. }

JSON类库 Flexjson学习的更多相关文章

  1. 基于WinCE的JSON 类库 源码

    基于WinCE的JSON 类库,可以将对象序列化成字符串和文件. 提示,其在反序列化时有一个BUG: 如果对象的某个字段值为 null,将其序列化成字符串,然后将该字符串反序列化成对象时会报异常. 这 ...

  2. 两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)

    本篇文章主要介绍了"两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)",主要涉及到两款JSON类库Jackson与JSON-lib的性能对比(新增第三款 ...

  3. Atitit.json类库的设计与实现 ati json lib

    Atitit.json类库的设计与实现 ati json lib 1. 目前jsonlib库可能有问题,可能版本冲突,抛出ex1 2. 解决之道:1 2.1. 自定义json解析库,使用多个复合的js ...

  4. jacascript JSON对象的学习

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! JSON (javascript object notation) 全称是 javascript 对象表示 ...

  5. JSON类库Jackson与JSON-lib性能对比[转]

    Jackson:http://jackson.codehaus.org/ JSON-lib:http://json-lib.sourceforge.net/ Gson:http://code.goog ...

  6. apache commons类库的学习

    原文地址http://www.tuicool.com/articles/iyEbquE 1.1. 开篇 在Java的世界,有很多(成千上万)开源的框架,有成功的,也有不那么成功的,有声名显赫的,也有默 ...

  7. JSON类库Jackson优雅序列化Java枚举类

    1. 前言 在Java开发中我们为了避免过多的魔法值,使用枚举类来封装一些静态的状态代码.但是在将这些枚举的意思正确而全面的返回给前端却并不是那么顺利,我们通常会使用Jackson类库序列化对象为JS ...

  8. 手写Json解析器学习心得

    一. 介绍 一周前,老同学阿立给我转了一篇知乎回答,答主说检验一门语言是否掌握的标准是实现一个Json解析器,网易游戏过去的Python入门培训作业之一就是五天时间实现一个Json解析器. 知乎回答- ...

  9. 原生态的ajax 及json和gson学习资源

    @RequestMapping(value = "/{id}/view") @jsobody public String viewProject( @PathVariable(&q ...

随机推荐

  1. Linux 系统安装配置PHP服务(源码安装)

    简介: PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要 ...

  2. fiddler 工具使用配置

    前言: 之前为了手动测试项目组之间提供的接口,确定到底是哪一个接口出了问题.一般情况下,我们都直接采用了 Google 浏览器上,F12 后,Network 找到想要的 URL,然后,直接在浏览器上访 ...

  3. 内存与cpu的关系

    CPU是负责运算和处理的,内存是交换数据的.当程序或者操作者对CPU发出指令,这些指令和数据暂存在内存里,在CPU空闲时传送给CPU,CPU处理后把结果输出到输出设备上,输出设备就是显示器,打印机等. ...

  4. Oracle 10.2.0.1 精简客户端配置

    装完Ooracle 11g之后客户端sqlplus复制粘贴的时候不太简单,就 用了实验室的老版本10g客户端. 前提服务端装好了,想换一个客户端.11g sql plus也能用. 文件链接: 链接:h ...

  5. js 事件详解 冒泡

    起因:正常情况下我点击s2时是先弹出我是children,再弹出我是father,但是却出现了先弹出我是father,后弹出我是children的情况,这种情况是在和安卓app交互的h5页面中出现的, ...

  6. SQL2000系统表、存储过程、函数的功能介绍及应用

    转自:http://blog.csdn.net/zlp321002/article/details/480925 ----系统表------------------------------------ ...

  7. 【VirtualBox】ubuntu虚拟机与windows设置共享文件夹

    第一步:配置 http://blog.csdn.net/a962804835/article/details/72820355 第二步:解决ubuntu下共享文件夹无访问权限的问题 http://bl ...

  8. Mongodb数据结构及与MySql对比

    MySql一直是性价比最高的关系型数据库典范 MongoDB带来了关系数据库以外的NoSql体验. 让我们看一个简单的例子,我们将如何为MySQL(或任何关系数据库)和MongoDB中创建一个数据结构 ...

  9. [转]gluProject 和 gluUnproject 的详解

    gluProject 和 gluUnproject 的详解 简介: 三维空间中,经常需要将 3D 空间中的点转换到 2D(屏幕坐标),或者将 2D 点转换到 3D 空间中.当你使用 OpenGL 的时 ...

  10. [原]IOS 设备基本信息

    1.获取设备类型  (Iphone/ipad 几?) #import "sys/utsname.h" -(NSString*)getDeviceVersion{    struct ...