web-dev-qa-db-ja.com

JSONフォーマット(jQueryを介したJSONの送信AJAX Java / Wicketサーバーへの投稿)

JQueryを使用してJSONをJavaサーバーに投稿していますが、JSONが間違っているに違いないと思います。データの例とその送信方法を次に示します。

var lookup = {
    'name': name,
    'description': description,
    'items': [{
        'name': itemName,
        'value': itemValue
    }]
}

$.ajax({
    type: 'post',
    data: lookup,
    dataType: 'json'
});

WicketのAbstractAjaxBehaviorを使用してデータを受信し、解析できる単一のJSON文字列を取得したいと考えています。渡されたパラメータのマップを取得すると、キーセットは次のようになります。

items[0][name],
description,
name,
items[0][value],

名前と説明の値は簡単に取得できますが、アイテムの配列のキーがめちゃくちゃになっています。簡単なことだと思いますが、解決策を実行し続けているようです。助言がありますか?ありがとう!

15
Jared

JSON.stringifyを使用する必要があります。

$.ajax({
    type: 'post',
    data: JSON.stringify(lookup),
    contentType: 'application/json',
    dataType: 'json'
});

また、contentTypeとして「application/json」を指定する必要があります。デフォルトでは、jQueryはapplication/x-www-form-urlencodedを使用してオブジェクトをシリアル化します(contentTypeがapplication/json 'の場合でも)。したがって、手動で行う必要があります。

編集:「投稿」のキーは、メソッドではなくタイプである必要があります。

46