сериализацию пакета данных JSON в jQuery Ajax POST

У меня есть такая структура данных, как socket

var s = {
    "a": "foo",
    "b": 5,
    "c": {"d": "a long string"},
    "e": {
        "f": {
            "g": {
                "h": [1, 0, -2.1, 1.43]
            }
        },
        "i": {
            "j": {
                "k": [-3.2, 3.003, 0, 0]
            }
        }
    }
};

. Я хочу сохранить "a", "b", "c" и " e "ключи переменной s в таблице базы данных, чтобы я мог восстановить их снова. Я отправляю s через JQuery Ajax POST. Значения будут вставлены и сохранены как обычный текст (за исключением «b», которое всегда является числом).

ajax: {
    url: uri,
    type: "POST",
    data: s,
    dataType: "json",
    success: function(data, status) { .. }
}

Вот проблема, с которой я столкнулся. В Firebug я вижу свои параметры публикации… они действительно перепутались. Похоже, что данные были сериализованы на уровне каждого элемента (вроде глубокой сериализации), в то время как я надеялся на что-то вроде

e={"f":{"g":{"h":[1,0,-2.1,1.43]}},"i":{"j":{"k":[-3.2,3.003,0,0]}}}

Update : Вместо этого я получаю следующее (я не экранировал строку ниже, поэтому он более читабелен)

a=foo&b=5&c[d]=a long string&e[f][g][h][]=1&e[f][g][h][]=0&e[f][g][h][]=-2.1&e[f][g][h][]=1.43

Возможно, я делаю это неправильно, поэтому не стесняйтесь направлять меня к лучшему.

8
задан punkish 26 January 2012 в 03:40
поделиться