Javascript JSON.stringify()无法工作

Javascript JSON.stringify()无法工作,javascript,arrays,json,stringify,Javascript,Arrays,Json,Stringify,当尝试使用JSON.stringify()方法将字符串数组转换为可以传递给PHP脚本的JSON对象时,stringify()方法无法返回任何有意义的内容 这是输入传递的唯一代码。它没有被其他任何东西篡改 function submitItem() { try { var item = []; item.name = $('.itemText').val(); item.type = $('.itemType').val(); item.price = $('.i

当尝试使用
JSON.stringify()
方法将字符串数组转换为可以传递给PHP脚本的JSON对象时,
stringify()
方法无法返回任何有意义的内容

这是输入传递的唯一代码。它没有被其他任何东西篡改

function submitItem() {
 try {
    var item = [];
    item.name = $('.itemText').val();
    item.type = $('.itemType').val();
    item.price = $('.itemPrice').val();
    item.color = $('.itemColor').val();
    item.desc = $('.itemDesc').val();
    item.image = $('.itemImage').val();
    item.giftType = $('.itemGiftType').val();
    item.avail = $('.itemAvail').val();
    item.giftable = $('.itemGiftable').val();
    item.ranking = $('.itemRanking').val();
    item.basicTrack = $('.itemBasic').val();
    item.vetTrack = $('.itemVet').val();
    item.month = $('.itemMonth').is(':checked');
    item.hidden = $('.itemHidden').is(':checked');
    item.id = $('.itemID').val();

     //Left in for confirmation purposes
    var join = [];
    join[0] = 'test';
    join[1] = 'tset';
    console.log( JSON.stringify( join ) );

    console.log(item);
    var JsonItem = JSON.stringify(item);
    console.log( JsonItem );
 } catch (err) {
    console.log(err.message);
 }
}
这将在控制台中生成以下输出:

如您所见,两个JSON项的日志都返回为
[]
,而不是任何类型的JSON字符串

如有任何可能出现这种情况的原因,我们将不胜感激

谢谢。

您正在将“项”初始化为数组。您应该将其初始化为普通对象(
{}
):


当JSON序列化程序看到实际数组时,它只对数字索引属性进行操作。

在stringify之前,应该将join转换为object

console.log( JSON.stringify( {arr: join}) );

数组根据其以数字命名的属性(
1
2
等)而不是其非数字属性(
id
name
等)进行字符串化。计时器完成后,数组将接受答案。我以前没意识到。谢谢:)聪明的回答。不知道为什么没人这么看。。。
console.log( JSON.stringify( {arr: join}) );