【发布时间】:2026-02-23 19:20:03
【问题描述】:
这是我的数组(来自 Chrome 控制台):
这是代码的相关部分:
console.log(hours);
var data = JSON.stringify(hours);
console.log(data);
在 Chrome 的控制台中,我从最后一行得到[]。我应该得到{'Mon':{...}...}
这里是重现该问题的最少 JavaScript:
var test = [];
test["11h30"] = "15h00"
test["18h30"] = "21h30"
console.log(test);
console.log(JSON.stringify(test)); // outputs []
我尝试了一些其他的东西,比如 Convert array to JSON 或 Convert javascript object or array to json for ajax data 但问题仍然存在。
【问题讨论】:
-
你能在 jsfiddle.net 上做一个活生生的例子吗?
-
您从哪里获得小时数?看起来不像是一个js数组,更像是一个对象..
-
你有一个伪装成数组的对象 -
length表示零并且属性被命名。 -
当您实际需要对象 (
{}) 时,您似乎已经创建了数组 ([])。在 JavaScript 中,如果您想使用非数字键(例如“11h30”),则需要使用对象。 -
passing an array to json.stringify 的可能重复项,虽然那里的答案没有详细说明为什么对象与数组相比是必需的。
标签: javascript arrays json object