java解析json的方法
来源:互联网 发布:北京大学安金鹏 知乎 编辑:程序博客网 时间:2024/06/01 23:40
1,使用org.json.jar
2,使用json-lib包
二者的比较:
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,比较麻烦。
由于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); }}
0 0
- java解析json的方法
- Java解析JSON的相关方法
- Java解析JSON的通用方法
- Java解析JSON文件的方法
- Java解析JSON文件的方法
- java解析JSON文件的方法
- java解析嵌套Json的方法
- Java解析JSON文件的方法
- Java解析JSON文件的方法
- 解析JSON的方法
- json解析的方法
- Java 解析 Json 文件 (把 Json 转化成 String 的方法来解析)
- Json解析1--Java构造和解析Json数据的两种方法详解
- Java下json的解析方法-----GSON与JSONObject
- Java下json的解析方法-----GSON与JSONObject
- Java下json的解析方法-----GSON与JSONObject
- Java构造和解析Json数据的两种方法
- Java下json的解析方法-----GSON与JSONObject
- MYSQL自定义函数(五)
- 【路标】我的自学之路
- 小米2s刷回低版本ROM
- 非图像界面服务器执行demo时报错的解决方案
- 七,Java集合类(5)——Queue接口及其实现类
- java解析json的方法
- 面试小记——listview的问题
- 记录下mybatis中#{}和${}传参的区别
- hive 实践(二):hive基本原理
- 关于Xcode注释不能使用问题
- 前端开发人员必须了解的七大技能图谱
- tomcat错误记录
- java URL 类 获取 相关 参数
- stillcap实现