json 按照我的理解来说,就是一个字串表,可以用来表示对象的字符串,也可以用来表示数组。它比 xml 文件节省了很多标签的内容。

关于什么是 json,在这里我们就不过多介绍了。

Json-lib 是一个 Java 类库(官网:http://json-lib.sourceforge.net/)可以实现如下功能:

1、转换 javabeans、maps、collections、 Java arrays 和 XML 成为 json 格式数据:
2、转换 json 格式数据成为 javabeans 对象。

Json-lib 的 jar 包貌似不太好找,我在这里提供了一个版本,仅供参考。不过个人建议,还是从官网下载 jar 包会好一点,毕竟这也是一种能力。

Json-lib的基本jar包.rar

Json-lib 需要的 jar 包:

(1)commons-beanutils-1.8.3.jar
(2)commons-collections-3.2.1.jar
(3)commons-lang-2.6.jar
(4)commons-logging-1.1.1.jar
(5)ezmorph-1.0.6.jar
(6)json-lib-2.4-jdk15.jar

第一部分:将 Java 对象转换成 JSON 格式(字符串)

1、处理多个对象(数组、集合 List 或者 Set)

将“数组”类型的对象转换成 JSON 格式

JSONArray.fromObject(传入一个“数组”类型的对象);

说明:这里的数组对象可以是 Array、对象数组,集合类(Set集合);

2、处理单个对象(Map 或者 JavaBean)

将 Map类型的对象,或者单个的 JavaBean 或者嵌套的对象转换成 JSON 格式;

JSONObject.fromObject(传入一个 Map类型的对象,或者单个的 JavaBean 或者嵌套的对象);

3、使用 JsonConfig 过虑属性:适用于 JavaBean、Map;

示例代码:

JsonConfig config = new JsonConfig();
config.setExcludes(new String[] { "name" }); // 指定在转换时不包含哪些属性
Person person = new Person("A001", "Jack");
SONObject jsonObject = JSONObject.fromObject(person, config); // 在转换时传入之前的配置对象
System.out.println(jsonObject);

第二部分:将 JSON 格式(字符串)的数据转换成 Java 对象

1、处理多个对象

将 JSON 格式的字符串转换成 Array:

JSONArray jsonArray = JSONArray.fromObject("[89,90,99]");
Object array = JSONArray.toArray(jsonArray);
System.out.println(array);
System.out.println(Arrays.asList((Object[]) array));

2、处理单个对象

将 Json 串转成 JavaBean 和 Map:

核心的方法:
(1)将 Json 形式的字符串转换为 Map:

JSONObject jsonObject = JSONObject.fromObject(str);
Map<String, Object> map = (Map<String, Object>) JSONObject.toBean(jsonObject, Map.class);

(2)将 Json 形式的字符串转换为 JavaBean:

jsonObject = JSONObject.fromObject(str);
Person person = (Person) JSONObject.toBean(jsonObject, Person.class);

注意:在将 Json 形式的字符串转换为 JavaBean 的时候需要注意 JavaBean 中必须有无参构造函数,否则会报找不到初始化方法的错误。

参考资料:

1、Json 和 Jsonlib 的使用 - sunzn - 博客园
http://www.cnblogs.com/sunzn/archive/2013/02/12/2910241.html

说明:可以作文入门级别的使用教程,本身 Json-lib 就不难。

2、

JSON-lib框架,转换JSON、XML不再困难 - hoojo - 博客园
http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html

3、

java对象与json对象间的相互转换 - gchb9527的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/gchb9527/article/details/8688279

4、

Json lib 教程 - OPEN 开发经验库
http://www.open-open.com/lib/view/open1326597921734.html

5、

Json lib 教程 - OPEN 开发经验库
http://www.open-open.com/lib/view/open1326597921734.html

Json-lib 的学习笔记的更多相关文章

  1. 模块urllib requests json xml configparser 学习笔记

    发起http请求 获取返回值 返回值是字符串 第三方模块安装 pip install requests 返回值格式 xml  html  jaon json 功能  loads   字符串>&g ...

  2. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  3. Android 学习笔记之Volley(七)实现Json数据加载和解析...

    学习内容: 1.使用Volley实现异步加载Json数据...   Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...

  4. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  5. Json.Net学习笔记

    http://www.cnblogs.com/xiaojinhe2/archive/2011/10/28/2227789.html Newtonsoft.Json(Json.Net)学习笔记 http ...

  6. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  7. python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码

    python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...

  8. 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回

    作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...

  9. 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  10. 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

随机推荐

  1. AppCan打包问题

    在AppCan IDEA打包的时候出了错误, Failed reading value of registry key: Software\JavaSoft\Java Runtime Environm ...

  2. wode.

    http://www.cnblogs.com/wilber2013/p/4638967.html

  3. java_时间戳与Date_相互转化的实现代码

    转载自: java_时间戳与Date_相互转化的实现代码

  4. Comet OJ - Contest #13 「火鼠的皮衣 -不焦躁的内心-」

    来源:Comet OJ - Contest #13 芝士相关: 复平面在信息学奥赛中的应用[雾 其实是道 sb 题??? 发现原式貌似十分可二项式定理,然后发现确实如此 我们把 \(a^i\) 替换成 ...

  5. mysql优化--explain关键字

    MySQL性能优化---EXPLAIN 参见:https://blog.csdn.net/jiadajing267/article/details/81269067 参见:https://www.cn ...

  6. 使用svn未响应卡死的几个原因,commit时checkout时

    1.commit 时 很可能是:检索文件内容过多导致,解决:不要在最外层文件夹目录下commit 2.checkout时 很可能是:地址错误

  7. oracle的sql 记录

    ----1.分组函数--select max(tfi.expected_scale) max1,min(tfi.expected_scale) min1,to_char(avg(tfi.expecte ...

  8. 005-使用smtp发送邮件报警

    创建监控项: 如果有两个触发条件则中间用  and 连接,or等 此上  触发器已经创建好了,但是触发器的动作还需要去定义: 默认动作是停用的需要手动打开:

  9. python grobal 的使用方法

    写一个功能,运行报错,name 'number' is used prior to global declaration ,查资料梳理一下 因为这个函数需要调用多次,第一次调用的时候,走if语句,后面 ...

  10. nginx代理证书使用方法

    一.证书购买 一般情况,申请证书时需要添加DNS解析,具体的步骤一般运营商都会给予详细说明.当然,也需要填写证书保护的处理的域名,一般非免费的证书可以支持多个域名处理,免费的一般只能支持一个域名的设置 ...