如何构建一个转换为JSON的javascript数组?

时间:2014-08-13 12:54:21

标签: javascript arrays json

我有一个应该

的功能
  1. 收集数组中的所有输入数据
  2. 将该数组放入JSON格式(用作ajax发布数据)
  3. 这就是我所拥有的,它似乎应该有效,但是当我记录字符串化版本时,我得到的只是[]。

    function get_data_from_form() {
        var data = [];
        var inputs = $('form').find('input');
    
        $.each(inputs, function (index, value) {
            var name = $(this).attr('name');
    
            data[name] = value; // How should this change?
    
        });
        console.log('stringified data: ' + JSON.stringify(data)); // -> []
    }
    

    所需的输出应该是这样的:“{fname:'turd',lname:'ferguson'}”

    我做错了什么?是否更容易创建一个字符串并连接名称/值对?

2 个答案:

答案 0 :(得分:3)

您应该定义一个对象,而不是一个数组

var data = {};

data[name] = value;

答案 1 :(得分:2)

您的value提取字段错误 - 在.each调用中,value参数是当前元素,而不是其值。此外,您需要捕获键/值存储中的字段,即Object而不是Array。试试这个,而不是:

var data = {};  // NB: *not* an array

$('form :input').each(function() {
    data[this.name] = this.value;
});

请参阅http://jsfiddle.net/alnitak/hsy2xd5L/