将多维输入数组转换为JSON

时间:2013-04-24 09:49:48

标签: javascript jquery json multidimensional-array

我想获取输入字段并将它们最终放入JSON字符串中(通过Jquery / Javascript)。

这是我的html标记

<input type="text" class="specifications" name="specifications[0][title]" />
<input type="text" class="specifications" name="specifications[0][stat]" />

<input type="text" class="specifications" name="specifications[1][title]" />
<input type="text" class="specifications" name="specifications[1][stat]" />

<input type="text" class="specifications" name="specifications[2][title]" />
<input type="text" class="specifications" name="specifications[2][stat]" />

<input type="text" class="specifications" name="specifications[3][title]" />
<input type="text" class="specifications" name="specifications[3][stat]" />

我希望我的JSON字符串是这样的

[
{ title: 'title1', stat: '1000' },
{ title: 'title1', stat: '2000' },
{ title: 'title2', stat: '3000' },
{ title: 'title3', stat: '4000' },
{ title: 'title4', stat: '5000' }
]

我现在已经搜索了很多并发现了这些帖子,但他们并没有帮助我完成我想要完成的任务

jquery serialize input with arrays

Submit form input array with jquery ajax post

请帮忙。

1 个答案:

答案 0 :(得分:3)

这将根据您的输入创建您描述的对象:

    var specsLen = $('input.specifications').length / 2,
        array = [],
        i;
    for (i = 0; i < specsLen; i += 1) {
        array.push({
            title: $('input.specifications[name="specifications[' + i + '][title]"]').val(),
            stat: $('input.specifications[name="specifications[' + i + '][stat]"]').val()
        });
    })

See fiddle example