ajax向后台传递“复合json”参数

一般而言,通过ajax向后台传递参数,都是通过json格式传递,最常见的形如:

 

data:{"app_id":app_id, "rule_indc":rule_indc}

后台则用一个map接收即可;

 

但现在向后台传递的json数据是复合的,如:

var json1 = {"a": xxx, "b": yyy, "c": zzz};
data:{"app_id":app_id, "rule_indc":rule_indc, "json1":json1}

 可以看出,传递的json数据里面又包括了一个json。后台获取的时候,前2个参数可以直接用map获取。后1个参数,我原先以为是可以获取1个map来对应json1,然后再用json1对应的map获取a,b,c对应的值的,后来发现无法获取一个map来对应json1,而且改用JSONObject来对应json1,也是同样无法获取。

debug发现,后台获取到前台对应的map为:

{rule_indc=****, app_id=####,json1[a]=xxx, json1[b]=yyy, json1[c]=zzz}

 由此可见,如果想获取json1的数据,还是要用形如map.get("json1[a]")的方式。。即获取前台传过来的“json中的json”的数据,要用json名[key]作为key来获取。当然,获取普通的只需用常见的字符串key即可。

 

你可能感兴趣的:(Ajax,后台取值,复合json)