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":{}}}"

原文地址:https://www.cnblogs.com/jpfss/p/9698151.html