我试图在控制器中检索从客户端(通过 ajax)以 JSON 格式发送的复杂对象,但我不知道如何从参数中获取转换了某些属性的映射。
例如,假设这是一个“复杂”的 JSON 对象(元对象中的项目数是可变的,可以是一、二、三……并且具有变量名称):
{
language: "java",
meta: {
category: "category1"
}
}
当这个对象通过 jQuery 发送时,在控制器中我在 params 对象中得到这个:
[language:java, meta[category]:category1, action: register, controller: myController]
这就是我通过 jQuery 发送对象的方式。我有几个调用的通用函数:
if (!params) params = {};
var url = this.urls.base+"/"+controller+"/"+action+"?callback=?";
if (params.callback)
url = this.urls.base+"/"+controller+"/"+action+"?callback="+params.callback;
url = url + "&_"+new Date();
delete params.callback;
$.ajax({
url: url,
data: params,
crossDomain:true,
dataType:'jsonp',
cache:false,
ajaxOptions: {cache: false},
jsonp: params.callback?false:true
});
在 ajax 调用的参数中,我发送用于测试我之前编写的 JSON 对象
如果我尝试在控制器中执行 params.meta,我会得到一个空对象。我应该如何从 params 对象中检索地图?