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 ...
随机推荐
- Python 从大型csv文件中提取感兴趣的行
帮妹子处理一个2.xG 大小的 csv文件,文件太大,不宜一次性读入内存,可以使用open迭代器. with open(filename,'r') as file # 按行读取 for line in ...
- vim学习(三)之命令
参考 Linux vi/vim vim常用命令总结
- xml的解析及案例的分析和分享
HTML的文档如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=& ...
- javaScript运动框架之匀速运动
运动框架 1.在开始运动时,关闭已有定时器 2.把运动和停止隔开(if/else) 匀速运动的停止条件 运动终止条件:距离足够近 Demo代码 <!DOCTYPE html> <ht ...
- JAVA中如何定义自定义注解
了解注解 注解是Java1.5,JDK5.0引用的技术,与类,接口,枚举处于同一层次 .它可以声明在包.类.字段.方法.局部变量.方法参数等的前面,用来对这些元素进行说明,注释 . 在Java中,自带 ...
- ifconfig - 配置网络接口
总览 ifconfig [接口] ifconfig 接口 [aftype] options | address ... 描述 ifconfig 用于配置常驻内核的网络接口.它用于在引导成功时设定网络接 ...
- 火车采集用到的access查询命令小结
#For zencart #图片网址路径替换 UPDATE Content SET v_products_image=replace(v_products_image, '<img src=&q ...
- http知识总结
layout: '''http' title: 知识整理' date: 2019-06-09 17:07:20 tags: --- 简介 超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文 ...
- python基础语法170题
语言特性 1.谈谈对 Python 和其他语言的区别2.简述解释型和编译型编程语言3.Python 的解释器种类以及相关特点?4.说说你知道的Python3 和 Python2 之间的区别?5.Pyt ...
- SSM框架中IoC、DI与AOP的理解
框架封装了普通项目中程序员需要重复书写的代码和调用过程,就比如说在传统的jsp项目中,我们的controller接收到前端的请求然后程序员就需要去开发Dao层,里面还涉及数据库的连接和存储过程的代码, ...