Json数据格式解析示例 (语言:Java 包:org.json.jar)
来源:互联网 发布:java如何调用api接口 编辑:程序博客网 时间:2024/05/01 00:04
以做过的项目为例,Java解析Json格式数据,使用开源包json.jar。业务背景: 在数据库某个表中,存有Json数据格式的数据,现在要把数据解析到java中。
package com.test.json;import org.apache.log4j.Logger;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;/** * * 解析JSON数据格式 * * @category:测试 * @author hanhuayi * @version v3.0,Jun 17, 2012 2:31:27 PM * @see */public class TestJSON{/*** log4j*/private static Logger logger = Logger.getLogger(TestJSON.class);//表格名private static String gridName = "list";//测试Json格式数据String str = "{'list':[{'_show_edit':false,'sum':0,'_height':30,'_need_edit':true,'width':200,'delete':false,'displayname':'供应商编码','need':0,'alias':null,'code':'ccode','lock':0,'_prec_edit':false,'prec':null,'align':'left','_sum_edit':false,'_id':'autoID-7','cdatatype':'0','show':1,'name':'供应商编码','parent':null,'_displayname_edit':true,'flex':false},{'_show_edit':false,'sum':0,'_height':30,'_need_edit':true,'width':null,'delete':false,'displayname':'供应商名称','need':0,'alias':null,'code':'cname','lock':0,'_prec_edit':false,'prec':null,'align':'left','_sum_edit':false,'_id':'autoID-8','cdatatype':'0','show':1,'name':'供应商名称','parent':null,'_displayname_edit':true,'flex':false},{'_show_edit':true,'sum':0,'_height':30,'_need_edit':true,'width':null,'delete':false,'displayname':'供应商简称','need':0,'alias':null,'code':'csname','lock':0,'_prec_edit':false,'prec':null,'align':'left','_sum_edit':false,'_id':'autoID-9','cdatatype':'0','show':1,'name':'供应商简称','parent':null,'_displayname_edit':true,'flex':false},{'_show_edit':true,'sum':0,'_height':30,'_need_edit':true,'width':null,'delete':false,'displayname':'助记码','need':0,'alias':null,'code':'chotcode','lock':0,'_prec_edit':false,'prec':null,'align':'left','_sum_edit':false,'_id':'autoID-10','cdatatype':'0','show':1,'name':'助记码','parent':null,'_displayname_edit':true,'flex':false}]}";public static void main(String[] args) {//列属性String[] colArributes = new String[]{"displayname","show","code",""};//解析JSON数据格式,获得列属性集合List<Map> colData= parseJSONStyle(gridName,str,colArributes);}/*** * 解析Json格式数据* * @param gridName* @param str* @param colArributes* @return * @return List<Map>* @exception 异常描述* @see*/@SuppressWarnings("unchecked")private static List<Map> parseJSONStyle(String gridName,String str,String[] colArributes){List<Map> colData = new ArrayList<Map>();try {JSONObject jso= new JSONObject(str);if(jso.has(gridName)) {JSONArray colArrayJson = jso.getJSONArray(gridName);// logger.info(colArrayJson);for (int i = 0; i < colArrayJson.length(); i ++) {JSONObject colJso = colArrayJson.getJSONObject(i);for (int j = 0; j < colArributes.length; j ++) {Map colMap = new HashMap();colMap.put(colArributes[j], colJso.get(colArributes[j]));colData.add(colMap);// logger.info(colJso.get("name"));}}}} catch (JSONException e) {e.printStackTrace();}return colData;}}
下面是一个更简单的例子(网上摘取),运行一遍就知道大致上的解析规则:
String a="{"data":{"bidirection":true},"msg":"成功","success":true,"code":0,"array":[{"a":true},{"a":false}]}";
JSONObject jso=new JSONObject(a);
System.out.println(jso.get("data").toString());
JSONObject jso2=jso.getJSONObject("data");
System.out.println(jso.get("success"));
System.out.println(jso2.getBoolean("bidirection"));
JSONArray jso3=jso.getJSONArray("array");
System.out.println(jso3.get(0));
简单的说明一下:
在上面的Json格式数据字符串a中,
a :是一个Json对象
"data":{"bidirection":true} :是一个Json对象
"bidirection":true :是键值对
"array":[{"a":true},{"a":false}] :是Json对象里的一个Json数组,这个数组里的元素是Json对象
JSON的数据格式,可以参照:http://baike.baidu.com/view/136475.htm
- Json数据格式解析示例 (语言:Java 包:org.json.jar)
- Java使用org.json.jar构造和解析Json数据
- Java解析Json(org.json,json-lib)
- json 数据格式 示例
- Java构建json数据格式(利用org.json)
- org.json:json包
- java中利用jar包将list,对象等转换为json数据格式
- JSON 解析 - java库org.json简介
- JSON解析 - java库org.json使用
- Java解析JSON数据 使用org.json
- Java:JSON解析工具-org.json
- android 解析json数据格式
- android 解析json数据格式
- Android 解析json数据格式
- android 解析json数据格式
- android 解析json数据格式
- Android 解析json数据格式
- android 解析json数据格式
- Windows Driver Foundation - KMDF 内核模式驱动框架结构 第二部分
- Windows Driver Foundation - KMDF 内核模式驱动框架结构 第三部分
- poj 2871 A Simple Question of Chemistry
- 结构体运算符重载
- Windows Driver Foundation - KMDF 内核模式驱动框架结构 第四部分
- Json数据格式解析示例 (语言:Java 包:org.json.jar)
- flash读取XML文件
- Windows Driver Foundation - KMDF 内核模式驱动框架结构 第五部分
- Android ApiDemos示例解析(27):App->Notification->Notifying Service Controller
- Discuz X2安装实录
- 无缝漫游 Seamless Roaming
- WLAN Roaming - the basics Even if you keep the same IP address, things get complicated.
- (深入)进程上下文和中断上下文
- Silverlight 引路蜂二维图形库示例:多义线和多边形