1

クライアントから (ajax 経由で) 送信された複雑なオブジェクトをコントローラーで JSON 形式で取得しようとしていますが、一部のプロパティが変換されたマップを params から取得する方法がわかりません。

たとえば、これが「複雑な」JSON オブジェクトであると想像してください (メタ オブジェクト内のアイテムの数は変数であり、1、2、3 のいずれかで、変数名を使用できます)。

{ 
  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
});

そして、以前に書いたJSONオブジェクトをテストするために送信するajax呼び出しのパラメーターで

コントローラーで params.meta を実行しようとすると、null オブジェクトが返されます。params オブジェクトからマップを取得するにはどうすればよいですか?

4

1 に答える 1