Java构造和解析Json数据的两种方法详解二——org.json
转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别。下面接着介绍用org.json构造和解析Json数据的方法示例。
用json-lib构造和解析Json数据的方法详解请参见我上一篇博文:Java构造和解析Json数据的两种方法详解一
一、介绍
org.json包是另一个用来beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.json.org/上有详细讲解,有兴趣的可以去研究。
二、下载jar依赖包
可以去这里下载
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAAiCAIAAAA/A5C4AAADf0lEQVR4nO2bXU/aUBjH+Vr9Bvsi/RK73cKWJWuIss2L4RSdFwtVWdN5LKCouAuI88aRbskCF7o4ZhRb+kJ7SnZRKO2hzc42Gep5fuHCtuc5nov/77yUkMIAwDCpWQ8AAGYJCAAwDQgAMA0IADANCAAwDQgAMA0IADANCAAwDQgAMA0IADANlQDVZHZ2dkql0rRHCQBTglYA7LoYu56HPQ8PBt5g4GHsDgZevV5XFEUpKdMeKABMAyoBdnd3XdeZdGAw8A4PD03TRAhVKpVpjxUAbhwqASqViuP0Yx1QFAUhhBBSlIlFQBW4FCeoNz/of+XWDgz471AJUC6Xnb6990mtN1uNZrvRbNc/txrNdr3Z2j/+8v3srN1qgQDAXYRKAEVR+rZVbZz4l47jXH184zgOxrjaOPGXAoTQFIcJANOBSgCEkG2ZWwdHtm1blvVz+1mntnR1/N627a2DIxAAuLtQCSDLsmWaolLTNK3b7f6Q050XDy4uLi4vL0Wl5p8HZFkmy1SBS/FS8OeQ4R2MJT6VirvJCcLwSdw2JbbK/08SP64JmnGCwJMdhQYWN7LJ3oB7C5UAkiSZhpHfVDqdzuvC9vLC86XV1Q979fk1eXlj28Ou52FJksiyIGfhwI265MPpkvhR/CQ+SGLMTj2pyk9xRK1IwBMFUAV+9CixN+A+QyVAsVg0e72FteLp6Snarz9ZXH+6uFGuNbJr8qu3mxi7GLvFYpEsG+fMn49DMZSIWTloGn6gClw0uYlVUcOIZmQV2XxiDYjxFbivUAkgiqKh69mV9ebXb+9QbVWq+p/z8/Psyrr/elQURbKMDJKfNE5QY6PsX/+pAP713woQXh7CywIIwAxUAhQKhZ6mPcouzeXFuXwh+Mznxccvl/2vCAqFAlkWypkgEbcmNjPjvfuEAOO9UFIVEdmELVDQT9x6owocrAAMQiVALpfTNa2naYauG72eafQsw7BM07asvm07fdtx+rlcjiwLBWl8dI1M1AmH4EQBkqomIjve1oQOwZMChNvxPKwADEIlQCaT0a+vde165IAedcBy+nYmkyHLbkmQfncGAFiGSoB0Oq11u4EDvTgH0uk0UTW771tVgYu8EYrJP7zfBDDGlAI8pIPseoazbOjNTiTqww0UTP/AEPhBDMA0IADANCAAwDQgAMA0IADANCAAwDQgAMA0vwBtgj5nibP1pwAAAABJRU5ErkJggg==" alt="" />
三、基本方法介绍
由于org.json不能直接与bean进行转换,需要通过map进行中转,为了方便,我这里写了一个工具类JsonHelper,用于Json与Map、Bean的相互转换
package com.json; import java.lang.reflect.Method;
import java.text.ParseException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map; import org.json.JSONException;
import org.json.JSONObject; /**
*
* 1:将JavaBean转换成Map、JSONObject
* 2:将Map转换成Javabean
* 3:将JSONObject转换成Map、Javabean
*
* @author Alexia
*/ public class JsonHelper { /**
* 将Javabean转换为Map
*
* @param javaBean
* javaBean
* @return Map对象
*/
public static Map toMap(Object javaBean) { Map result = new HashMap();
Method[] methods = javaBean.getClass().getDeclaredMethods(); for (Method method : methods) { try { if (method.getName().startsWith("get")) { String field = method.getName();
field = field.substring(field.indexOf("get") + 3);
field = field.toLowerCase().charAt(0) + field.substring(1); Object value = method.invoke(javaBean, (Object[]) null);
result.put(field, null == value ? "" : value.toString()); } } catch (Exception e) {
e.printStackTrace();
} } return result; } /**
* 将Json对象转换成Map
*
* @param jsonObject
* json对象
* @return Map对象
* @throws JSONException
*/
public static Map toMap(String jsonString) throws JSONException { JSONObject jsonObject = new JSONObject(jsonString); Map result = new HashMap();
Iterator iterator = jsonObject.keys();
String key = null;
String value = null; while (iterator.hasNext()) { key = (String) iterator.next();
value = jsonObject.getString(key);
result.put(key, value); }
return result; } /**
* 将JavaBean转换成JSONObject(通过Map中转)
*
* @param bean
* javaBean
* @return json对象
*/
public static JSONObject toJSON(Object bean) { return new JSONObject(toMap(bean)); } /**
* 将Map转换成Javabean
*
* @param javabean
* javaBean
* @param data
* Map数据
*/
public static Object toJavaBean(Object javabean, Map data) { Method[] methods = javabean.getClass().getDeclaredMethods();
for (Method method : methods) { try {
if (method.getName().startsWith("set")) { String field = method.getName();
field = field.substring(field.indexOf("set") + 3);
field = field.toLowerCase().charAt(0) + field.substring(1);
method.invoke(javabean, new Object[] { data.get(field) }); }
} catch (Exception e) {
} } return javabean; } /**
* JSONObject到JavaBean
*
* @param bean
* javaBean
* @return json对象
* @throws ParseException
* json解析异常
* @throws JSONException
*/
public static void toJavaBean(Object javabean, String jsonString)
throws ParseException, JSONException { JSONObject jsonObject = new JSONObject(jsonString); Map map = toMap(jsonObject.toString()); toJavaBean(javabean, map); } }
四、演示示例
这里以基本的几个常用方法进行测试
package com.json; import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject; /**
* 使用json-lib构造和解析Json数据
*
* @author Alexia
* @date 2013/5/23
*
*/
public class OrgJsonTest { /**
* 构造Json数据
*
* @return
* @throws JSONException
*/
public static String BuildJson() throws JSONException { // 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 ja = new JSONArray();
ja.put(map1); System.out.println("JSONArray对象数据格式:");
System.out.println(ja.toString()); // 将Javabean转换为Json数据(需要Map中转)
JSONObject jo1 = JsonHelper.toJSON(employee); System.out.println("\n仅含Employee对象的Json数据格式:");
System.out.println(jo1.toString()); // 构造Json数据,包括一个map和一个含Employee对象的Json数据
jo.put("map", ja);
jo.put("employee", jo1.toString());
System.out.println("\n最终构造的JSON数据格式:");
System.out.println(jo.toString()); return jo.toString(); } /**
* 解析Json数据
*
* @param jsonString
* Json数据字符串
* @throws JSONException
* @throws ParseException
*/
public static void ParseJson(String jsonString) throws JSONException,
ParseException { JSONObject jo = new JSONObject(jsonString);
JSONArray ja = jo.getJSONArray("map"); System.out.println("\n将Json数据解析为Map:");
System.out.println("name: " + ja.getJSONObject(0).getString("name")
+ " sex: " + ja.getJSONObject(0).getString("sex") + " age: "
+ ja.getJSONObject(0).getInt("age")); String jsonStr = jo.getString("employee");
Employee emp = new Employee();
JsonHelper.toJavaBean(emp, jsonStr); System.out.println("\n将Json数据解析为Employee对象:");
System.out.println("name: " + emp.getName() + " sex: " + emp.getSex()
+ " age: " + emp.getAge()); } /**
* @param args
* @throws JSONException
* @throws ParseException
*/
public static void main(String[] args) throws JSONException, ParseException {
// TODO Auto-generated method stub ParseJson(BuildJson());
} }
运行结果如下
aaarticlea/png;base64,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" alt="" />
五、与json-lib比较
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数据的工具:一是在线工具JSONEdit(http://braincast.nl/samples/jsoneditor/);另一个是Eclipse的插件JSON Tree Analyzer,都很好用,推荐给大家使用!
Java构造和解析Json数据的两种方法详解二——org.json的更多相关文章
- Java构造和解析Json数据的两种方法详解二
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...
- Java构造和解析Json数据的两种方法详解一——json-lib
转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多JAVA下的jso ...
- Java构造和解析Json数据的两种方法详解一
一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.js ...
- android emulator启动的两种方法详解
android emulator启动的两种方法详解 转https://blog.csdn.net/TTS_Kevin/article/details/7452237 对于android学习者,模 ...
- Android中使用Gson解析JSON数据的两种方法
Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...
- Ajax中解析Json的两种方法详解
eval(); //此方法不推荐 JSON.parse(); //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ "name&qu ...
- Redis中持久化的两种方法详解
Redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照(snapshotting),它可以将存在于某一时刻的所有数据都写入硬盘里;另一种方法教只追加文件(append-only f ...
- 【代码笔记】iOS-向服务器传JSON数据的两种方式
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...
- 二、用Delphi10.3 创建一条JSON数据的第二种方法,并格式化输出
一.用Delphi10.3构造一个JSON数据的第二种方法,并格式化输出,代码如下: uses //System.JSON, System.JSON.Types, System.JSON.Writer ...
随机推荐
- 2015多校第7场 HDU 5378 Leader in Tree Land 概率DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5378 题意:一棵n个节点的树.对其节点进行标号(1~n).求恰好存在k个节点的标号是其节点所在子树的最 ...
- Lambda 表达式 in java 8
Lambda 表达式 in Java 8 Lambda表达式是java 8 新增的特性 Lambda表达式主要作用:支持将代码块作为方法参数,允许使用更简洁的代码创建函数式接口的实例,是匿名内部类的一 ...
- HTML5表单之Input 类型- Date Pickers(日期选择器)
HTML5 拥有多个可供选取日期和时间的新输入类型: date-选取日.月.年 month-选取月.年 week-选取周和年 time-选取时间(小时和分钟) datetime-选取时间.日.月.年( ...
- 使用 Visual Studio 部署 .NET Core 应用
可将 .NET Core 应用程序部署为依赖框架的部署或独立部署,前者包含应用程序二进制文件,但依赖目标系统上存在的 .NET Core,而后者同时包含应用程序和 .NET Core 二进制文件. 有 ...
- 我是如何向老婆解释MapReduce的?
转载自:<我是如何向老婆解释MapReduce的?> 昨天,我在Xebia印度办公室发表了一个关于MapReduce的演说.演说进行得很顺利,听众们都能够理解MapReduce的概念(根据 ...
- mysql-表完整性约束
阅读目录 一 介绍 二 not null与default 三 unique 四 primary key 五 auto_increment 六 foreign key 七 总结 一 介绍 回到顶 ...
- Storm实战常见的问题
该文档为实实在在的原创文档,转载请注明: http://blog.sina.com.cn/s/blog_8c243ea30101k0k1.html 类型 详细 备注 该文档是群里几个朋友在storm实 ...
- LeetCode Binary Tree PostorderTranversal
Problem Description Given a binary tree, return the postorder traversal of its nodes' values. For ex ...
- umount.nfs: device is busy解决办法
fuser -km /app/nfs/ https://blog.csdn.net/x_i_y_u_e/article/details/42914817
- 前端读者 | 前端面试基础手册(HTML+CSS)
本文来自@羯瑞:希望前端面试基础手册能帮助要找工作的前端小伙伴~~ HTML 前端需要注意哪些SEO? 合理的title.description.keywords:搜索对着三项的权重逐个减小,titl ...