Если у меня есть следующая форма :
<form>
<input name="foo" value="bar">
<input name="hello" value="world">
<input name="animals[]" value="panda">
<input name="animals[]" value="koala">
<input name="car[make]" value="Honda">
<input name="car[origin]" value="Japan">
</form>
Я не хочу использовать $ ("форма").serialize ()
:
foo=bar&hello=world&animals%5B%5D=panda&animals%5B%5D=koalacar&%5Bmake%5D=Honda&car%5Borigin%5D=Japan
Вместо этого я хочу следующее:
{"foo":"bar", "hello":"world", "animals":["panda", "koala"], "car":{"make":"Honda", "origin":"Japan"}}
Насколько я понимаю, для этого использовался jQuery, но они переключили метод serialize
на возврат строки запроса в стиле GET. Есть ли простой способ получить желаемый результат?
Я обновил свой исходный вопрос, включив в него примеры car [make]
и car [origin]
. Следует предположить, что ввод foo [bar] [baz]
или foo [bar] [baz] [bof]
также может появиться в форме.
Кроме того, указанные ключи с числовой индексацией, например foo [0] = a
, foo [1] = b
, foo [4] = c
] следует сохранить, например,
{ ... "foo":["a", "b", undefined, undefined, "c"] ... }