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. 展示到页面上:对象.属性
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. 展示到页面上:对象.属性
相关文章推荐
- js求时间差
- 关于Tokens你需要知道的10件事
- Json对象在JS里面的处理
- js的初始化
- js中报错:$ is not defined
- HTML5+JavaScript制作坦克大战游戏——学习笔记二
- js 限制输入框的字节数,中文两个字节,英文字母一个字节
- JavaScript 实例
- jspSmartUpload组件上传下载
- jsonP格式接口实现
- 试用Gson 解析json字符串
- JavaScript设计模式 Item9 --适配器模式Adapter
- 原生javascript+css3编写的3D魔方动画旋扭特效
- jsp页面比较时间js代码
- Extjs获取后台json留着剩的忘了
- JSP常用跳转方式
- 第一个ajax程序
- 解决 Javascript 中 atob 方法解码中文字符乱码问题
- 基于javascript html5实现3D翻书特效
- JavaScript 声明全局变量与局部变量