您的位置:首页 > Web前端 > JavaScript

JSON应用感悟

2016-03-14 17:17 597 查看
最近做的一个项目,客服模块系统,因为系统是分布式,单独把客服系统提出来,数据调用核心服务器的,调用方式HttpServlet的json格式。

1. 先铺垫下json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, 有两种结构,json简单说就是javascript中的对象和数组,这两种结构嵌套在一起可以组成复杂的结构。

对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。

数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。

{

"TransMessage":[

{

"ARRAYDATA":[

{

"CUSTOMERID":"11126918",

"CUSTOMERNAME":"冯清雅",

"SEXID":"",

"SEX":"",

"VIP":"",

"CERTID":"440303199801012836",

"WECHAT":"",

"QQ":"",

"REPAYMENTWAYID":"1",

"REPAYMENTWAY":"银行代扣",

"PHONE":"",

"BANKACCOUNTNO":"6222123443211234567",

"BANK":"psbc",

"ADDRESS":"安徽省合肥市庐阳区这个街那个小区这个楼101房",

"FAMILYADD":"安徽省",

"FAMILYADDID":"01",

"LIVINGCITY":"合肥市",

"LIVINGCITYID":"01",

"LIVINGCOUNTRYSIDE":"庐阳区",

"LIVINGCOUNTRYSIDEID":"340103",

"LIVINGTOWN":"这个街",

"LIVINGSTREET":"那个小区",

"LIVINGPLOT":"这个楼",

"LIVINGROOM":"101房",

"WORKCROP":"广东省深圳市龙岗区一号二号三号那个小窝",

"WORKADD":"广东省",

"WORKADDID":"04",

"WORKCITY":"深圳市",

"WORKCITYID":"22",

"WORKCOUNTRYSIDE":"龙岗区",

"WORKCOUNTRYSIDEID":"440307",

"WORKTOWN":"一号",

"WORKSTREET":"二号",

"WORKPLOT":"三号",

"WORKROOM":"那个小窝",

"NATIVEPLACE":"",

"NATIVEADD":"",

"NATIVEADDID":"",

"NATIVECITY":"",

"NATIVECITYID":"",

"NATIVECOUNTRYSIDE":"",

"NATIVECOUNTRYSIDEID":"",

"NATIVETOWN":"",

"NATIVESTREET":"",

"NATIVEPLOT":"",

"NATIVEROOM":""

},

{

"ISINUSE":"0",

"MESSAGE":"Success"

}

],

"RETCODE":"00000",

"RETMSG":"接口通讯成功",

"RETTRANSDATE":"2016/03/14 17:14:48"

}

]

}

对于接收数据方,拿到数据只是解析JSON的问题。

请求方:根据核心的请求报文方式,每个接口送一个交易码、一个JSONObject,分公共报文体,和私有报文体,私有报文体扔到JSONArray,
JSONArray在扔到jsonObject,请求过去,收到一个JSON的数据报文,开始解析:

1. 先用:JSONArray array = JSONArray.fromObject(jsonObjectLogn.get("TransMessage")); 拿到JSON 数组,

2. JSONObject jsonObject1 = array.getJSONObject(0); 拿到第一个JSONObject

3. String spiltStr = jsonObject1.toString();

if (spiltStr.indexOf("[[") != -1 && spiltStr.indexOf("]]") != -1) {

spiltStr = spiltStr.replace("[[", "[");

spiltStr = spiltStr.replace("]]", "]");

}

JSONObject jsonObject2 = JSONObject.fromObject(spiltStr);

JSONArray newArray = JSONArray.fromObject(jsonObject2.get("ARRAYDATA"));

return newArray;

4. 遍历,转为MAP集合,塞到LIST对象中。

5. 展示到页面上:对象.属性
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: