当尝试使用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字符串。
任何可能发生这种情况的原因都将受到赞赏。
感谢。
答案 0 :(得分:7)
您正在将“item”初始化为数组。您应该将其初始化为普通对象({}
):
var item = {};
当JSON序列化程序看到实际数组时,它只对数字索引属性进行操作。
答案 1 :(得分:2)
你应该在stringify之前将join转换为object
console.log( JSON.stringify( {arr: join}) );