Json-lib 的学习笔记
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 包:
(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 的学习笔记的更多相关文章
- 模块urllib requests json xml configparser 学习笔记
发起http请求 获取返回值 返回值是字符串 第三方模块安装 pip install requests 返回值格式 xml html jaon json 功能 loads 字符串>&g ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- Android 学习笔记之Volley(七)实现Json数据加载和解析...
学习内容: 1.使用Volley实现异步加载Json数据... Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- Json.Net学习笔记
http://www.cnblogs.com/xiaojinhe2/archive/2011/10/28/2227789.html Newtonsoft.Json(Json.Net)学习笔记 http ...
- Android学习笔记之JSON数据解析
转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
- 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回
作者:ssslinppp 时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...
- 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
随机推荐
- Luogu P3959 [NOIP2017]宝藏
题目 STO rqy OTZ 首先这种题一看我们就知道可以爆搜. prim一眼假了,但是加个SA也能过. 所以我们来写状压. 记\(f_{i,j,S}\)表示起点到\(j\)距离为\(i\),我们现在 ...
- layer弹出框的简易封装和使用
1. 封装layer 下载layer绿色版和jquery引入页面 <!DOCTYPE html> <html lang="zh-CN"> . . . < ...
- C#获取主机信息
获取主机信息 最近需要做一个配合集控系统收集各个终端设备的一些信息,大致需要收集终端设备的硬件信息,CPU.内存以及硬盘使用率等信息.网上查看了一番,使用WMI来获取这些信息是最方便的.实现代码如下: ...
- [转载]Jupyter notebook调试
原文来自:https://blog.csdn.net/dlhlsc/article/details/84309410 jupyter的调试是通过python自带的pdb库来实现的. 下面讲一下在not ...
- ES的索引、type、document、filer、mapping、id
一.ES的存储结构 1.索引 es 中存储数据的基本单位,比如说你现在要在 es 中存储一些订单数据,你就应该在 es 中创建一个索引 order_idx,所有的订单数据就都写到这个索引里面去.看了一 ...
- 现身说法:面对DDoS攻击时该如何防御?
上周,我们的网站遭到了一次DDoS攻击.虽然我对DDoS的防御还是比较了解,但是真正遇到时依然打了我个措手不及.DDoS防御是一件比较繁琐的事,面对各种不同类型的攻击,防御方式也不尽相同.对于攻击来的 ...
- 一、Core基于MVC的全局过滤器验证
一.Core基于MVC的过滤器验证 1.添加一个过滤器.在Startup 中ConfigureServices方法里添加一个Filters 即我们自己授权代码类. public void Config ...
- Directed Roads CodeForces - 711D (基环外向树 )
ZS the Coder and Chris the Baboon has explored Udayland for quite some time. They realize that it co ...
- Python修炼之路-函数
Python编程之函数 程序的三种方式 面向对象:类------->class 面向过程:过程------>def 函数式编程:函数------>def 定义函数 函数:逻辑结构化与 ...
- vue项目中引入vant 使用rem布局问题
postcss.config.js const autoprefixer = require('autoprefixer') const pxtorem = require('postcss-pxto ...