JSON应用感悟

             最近做的一个项目,客服模块系统,因为系统是分布式,单独把客服系统提出来,数据调用核心服务器的,调用方式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. 展示到页面上:对象.属性




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值