js中多层复杂并且动态键值JSON的获取方法

开发中遇到了用js解析重新组装json数据的要求,关键点在于JSON中的串的键是动态的,多方查找解决了在此做个记录。同时我也深感js中循环的无赖,如果用i作为键会得到索引,用key作为循环变量竟然可以得到key,不太理解这种设计,暂且记录下来吧。

 var jsonObj =JSON.parse(data.json);
                   console.log("payProductMap是:"+JSON.stringify(jsonObj.payProductMap));
                   var payProductMapJson = jsonObj.payProductMap;
                   var resultJson = {};
                   for (var key in payProductMapJson)
                    {
                        //alert("第一层:"+key);    
                        //alert("第一层:"+payProductMapJson[key]); 
                        resultJson.payProductName = key;
                        resultJson.dsPayBankMap = JSON.stringify(payProductMapJson[key]);
                        console.log("第一个JSON对象是:"+JSON.stringify(payProductMapJson));
                        break;
                    }

其中,关于json的格式说明如下(支付产品名称是根据页面选择生成的,也就是说JSON串中产品名称不是固定的,这个时候要再页面重新组装数据):


"{\"payProductMap\":{\"ONE_KEY_PAY_DEBIT\":{\"dsPayBankMap\":{\"BANK_PAY_WAP\":{\"rateType\":\"PERCENTAGE\",\"rate\":\"5\"}}}},\"payScenarioMap\":{\"H5_ACCESS\":{\"webUrl\":\"127.0.0.1\"},\"ZF_SHH_ZFB\":{}}}"

猜你喜欢

转载自www.cnblogs.com/jpfss/p/9698151.html