Java构造和解析Json数据的两种方法详解一
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别。下面首先介绍用json-lib构造和解析Json数据的方法示例。
用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二
一、介绍
JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.json.org/上有详细讲解,有兴趣的可以去研究。
二、下载jar依赖包:可以去这里下载
三、基本方法介绍
1. List集合转换成json方法
List list = new ArrayList(); list.add( "first" ); list.add( "second" ); JSONArray jsonArray2 = JSONArray.fromObject( list );
2. Map集合转换成json方法
Map map = new HashMap(); map.put("name", "json"); map.put("bool", Boolean.TRUE); map.put("int", new Integer(1)); map.put("arr", new String[] { "a", "b" }); map.put("func", "function(i){ return this.arr[i]; }"); JSONObject json = JSONObject.fromObject(map);
3. Bean转换成json代码
JSONObject jsonObject = JSONObject.fromObject(new JsonBean());
4. 数组转换成json代码
boolean[] boolArray = new boolean[] { true, false, true }; JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
5. 一般数据转换成json代码
JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );
6. beans转换成json代码
List list = new ArrayList(); JsonBean2 jb1 = new JsonBean2(); jb1.setCol(1); jb1.setRow(1); jb1.setValue("xx");JsonBean2 jb2 = new JsonBean2(); jb2.setCol(2); jb2.setRow(2); jb2.setValue("");list.add(jb1); list.add(jb2); JSONArray ja = JSONArray.fromObject(list);
四、演示示例
这里以基本的几个常用方法进行测试
package com.json;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;import net.sf.json.JSONArray; import net.sf.json.JSONObject;/*** 使用json-lib构造和解析Json数据* * @author Alexia* @date 2013/5/23**/ public class JsonTest {/*** 构造Json数据* * @return*/public static String BuildJson() {// JSON格式数据解析对象JSONObject jo = new JSONObject();// 下面构造两个map、一个list和一个Employee对象Map<String, String> map1 = new HashMap<String, String>();map1.put("name", "Alexia");map1.put("sex", "female");map1.put("age", "23");Map<String, String> map2 = new HashMap<String, String>();map2.put("name", "Edward");map2.put("sex", "male");map2.put("age", "24");List<Map> list = new ArrayList<Map>();list.add(map1);list.add(map2);Employee employee = new Employee();employee.setName("wjl");employee.setSex("female");employee.setAge(24);// 将Map转换为JSONArray数据JSONArray ja1 = JSONArray.fromObject(map1);// 将List转换为JSONArray数据JSONArray ja2 = JSONArray.fromObject(list);// 将Bean转换为JSONArray数据JSONArray ja3 = JSONArray.fromObject(employee);System.out.println("JSONArray对象数据格式:");System.out.println(ja1.toString());System.out.println(ja2.toString());System.out.println(ja3.toString());// 构造Json数据,包括一个map和一个Employee对象jo.put("map", ja1);jo.put("employee", ja2);System.out.println("\n最终构造的JSON数据格式:");System.out.println(jo.toString());return jo.toString();}/*** 解析Json数据* * @param jsonString Json数据字符串*/public static void ParseJson(String jsonString) {// 以employee为例解析,map类似JSONObject jb = JSONObject.fromObject(jsonString);JSONArray ja = jb.getJSONArray("employee");List<Employee> empList = new ArrayList<Employee>();// 循环添加Employee对象(可能有多个)for (int i = 0; i < ja.size(); i++) {Employee employee = new Employee();employee.setName(ja.getJSONObject(i).getString("name"));employee.setSex(ja.getJSONObject(i).getString("sex"));employee.setAge(ja.getJSONObject(i).getInt("age"));empList.add(employee);}System.out.println("\n将Json数据转换为Employee对象:");for (int i = 0; i < empList.size(); i++) {Employee emp = empList.get(i);System.out.println("name: " + emp.getName() + " sex: "+ emp.getSex() + " age: " + emp.getAge());}}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub ParseJson(BuildJson());}}
运行结果如下
五、与org.json比较
json-lib和org.json的使用几乎是相同的,我总结出的区别有两点:
1. org.json比json-lib要轻量得多,前者没有依赖任何其他jar包,而后者要依赖ezmorph和commons的lang、logging、beanutils、collections等组件
2. json-lib在构造bean和解析bean时比org.json要方便的多,json-lib可直接与bean互相转换,而org.json不能直接与bean相互转换而需要map作为中转,若将bean转为json数据,首先需要先将bean转换为map再将map转为json,比较麻烦。
总之,还是那句话—适合自己的才是最好的,大家要按需选取使用哪种方法进行解析。最后给大家介绍两款解析Json数据的工具:一是在线工具JSON Edit(http://braincast.nl/samples/jsoneditor/);另一个是Eclipse的插件JSON Tree Analyzer,都很好用,推荐给大家使用!
联系我
转载于:https://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html
Java构造和解析Json数据的两种方法详解一相关推荐
- java构造和解析json_Java构造和解析Json数据的两种方法详解一
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...
- java json解析 代码_Java构造和解析Json数据的两种方法详解一
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...
- java构建json_Java构造和解析Json数据的两种方法详解一
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...
- json解析详解 java_Java解析Json数据的两种方式详解
JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量,所以使用越来越广泛,下面介绍使用JsonObject和JsonArray的两种方式解析Json数据. 使用以上两种方式解析json ...
- 站长在线Python精讲:在Python中格式化字符串的两种方法详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中格式化字符串的两种方法详解>.本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字 ...
- oracle如何对数据库进行备份,对Oracle数据库进行备份的两种方法详解
首页 > 演讲稿 > 自我介绍演讲稿 > 对Oracle数据库进行备份的两种方法详解 对Oracle数据库进行备份的两种方法详解 时间:2019-05-05 来源:自我介绍演讲稿 ...
- Java构造和解析Json数据之org.json
一.介绍 org.json包是另一个用来beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www ...
- Redis中持久化的两种方法详解
Redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照(snapshotting),它可以将存在于某一时刻的所有数据都写入硬盘里;另一种方法教只追加文件(append-only f ...
- php 带建数组转字符串,php数组转换为字符串的两种方法详解【附视频】
本篇文章主要给大家介绍PHP数组转换为字符串的两种方法.(文章末尾附有对应的视频教程) 第一种方法:使用PHP本身的函数implode来直接将数组转换为字符串. 第二种方法:使用循环遍历数组元素拼接成 ...
最新文章
- 密码学研究-玩转密钥
- python3 判断进程是否存在
- Matlab--sort排序
- Java 技术篇-IntelliJ IDEA 导入数据库驱动jar包实例演示
- CCSpriteBatchNode的使用
- 全球视频监控设备市场规模分析
- echarts 山东地图_用Python画中国地图,实现各省份数据可视化
- HTML+CSS+JS实现 ❤️创意时间轮盘时钟特效❤️
- c#sql数据导出到excel
- mysql 建立索引_mysql建立索引的原则
- Flink-org.apache.flink.api.common.functions.AggregateFunction
- java 设置颜色_java 中怎样设置窗口的颜色
- centeros 卸载mysql_完全卸载MySql
- Windows CE如何根据文件名获取其对应文件图标icon
- python中re.group()
- 类人猿手游内存技术教程
- 微信怎么加入黑名单?微信黑名单怎么恢复好友
- ZigBee Routing Tables 路由表
- Pascal VOC转COCO格式亲测有效
- 2015版本的pdf文件合并拆分软件
热门文章
- python职能-最受欢迎的10家互联网公司揭秘Python薪资!
- c++强大还是python强大-Python 到底是强类型语言,还是弱类型语言?
- python画图-如何用python画图
- python 仪表盘-跟小白学Python数据分析——绘制仪表盘
- python慕课视频-python爬虫:爬取网站视频
- python爬虫requests-Python爬虫之requests介绍
- php和python交互-python与php的比较
- 学python需要什么基础知识-没学过Python先要学习哪些基础知识?
- python语音在线编辑-python实现语音在线合成,让你的小说自己念给你听
- python语言怎么用-这些小游戏是怎么用Python语言制作出来的……