Форматирование JSON (Отправка JSON через JQuery AJAX на сервер Java / Wicket) - PullRequest
15 голосов
/ 02 июля 2010

Я использую jQuery для отправки JSON на сервер Java, но я думаю, что мой JSON должен быть неправильным.Вот пример моих данных и того, как я их отправляю:

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

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

Я использую AbstractAjaxBehavior Wicket для получения данных и хотел бы получить одну строку JSON, которую я могу проанализировать.Когда я получаю Карту переданных параметров, набор ключей выглядит следующим образом:

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

Очевидно, я легко могу получить значения для имени и описания, но ключ для моего массива элементов перепутан.Я уверен, что это что-то простое, но я, кажется, продолжаю бегать вокруг решения.Какие-либо предложения?Спасибо!

1 Ответ

46 голосов
/ 02 июля 2010

Вы должны использовать JSON.stringify:

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

Вы также должны указать 'application / json' в качестве contentType. По умолчанию jQuery сериализует объекты с помощью application / x-www-form-urlencoded (даже если contentType - application / json '). Таким образом, вы должны сделать это вручную.

РЕДАКТИРОВАТЬ: ключ 'post' должен быть тип, а не метод.

...