在JavaScript中将数组转换为json时出现问题

在JavaScript中将数组转换为json时出现问题,javascript,jquery,json,Javascript,Jquery,Json,我有以下代码: var fields = []; $('input').each(function(){ var name = $(this).attr("name"); fields[name] = $(name).val(); }); 我想将字段变量转换为json字符串,但当我使用json.stringify时,我只得到(使用console.log):[] 如何简单地将数组字段转换为json字符串?如果希望字段名等文本字符串(而不是数字)作为属性名,则需要对象,而不是数组。将字段初

我有以下代码:

var fields = [];
$('input').each(function(){
  var name = $(this).attr("name");
  fields[name] = $(name).val();
});
我想将
字段
变量转换为json字符串,但当我使用
json.stringify
时,我只得到(使用
console.log
):
[]


如何简单地将数组
字段
转换为json字符串?

如果希望字段名等文本字符串(而不是数字)作为属性名,则需要对象,而不是数组。将
字段
初始化为
{}
而不是
[]


数组的JSON序列化将只包括键为数字的属性,从零到
.length
(减1)。

刚刚做了一个更正,请使用object而不是数组:

    var fields = {};
    $('input').each(function(){
     var name = $(this).attr("name");
     fields[name] = $(name).val();
    });

Ok问题出现在以下行:

 fields[name] = $(name).val();
我将
名称
更改为

 fields[name] = $(this).val();

当我使用
控制台将
fields
初始化为
{}
时,log
我得到
{}
@jacewojtek,那么你在页面上没有任何输入。@jacewojtek如果你的代码放在页面顶部的
中,那么它会在构建DOM之前运行。