【发布时间】:2017-07-07 14:14:07
【问题描述】:
我正在使用字典来注册多个设备的状态,并且我想将它们转换为 JSON 以进行存档。 这是我用来构建字典的代码:
$scope.lastValues=[];
for (var i in nomeImpianti) {
var newValue={
id: i,
name: nomeImpianti[i],
values:{
value1: true,
value2: false,
value3: false
}
}
$scope.lastValues[nomeImpianti[i]]=0;
}
然而,当我打印数组时,它出现在表单中:
[一般:0,电机1:0,电机2:0,impianto 1:0,impianto 2: 0...]
而不是典型的 javascript 字典的 {} 形式。 事实上,当我在控制台中输入打印时,它会作为一个封闭的“对象”给出,而如果我询问类似以下内容的类型:
var json = {"items":[{"Desc":"Item1"},{"Desc":"Item2"},{"firstName":"John"},{"lastName":"Smith"}]};
它是:
对象 {firstName: Array(2), lastName: Array(2)}
因此,如果我对 json 变量进行字符串化,则会创建正确的字符串,而如果我在 [] 分隔结构上执行此操作,则会创建一个空字符串。 如何正确处理以 {} 分隔结构表示的字典?
【问题讨论】:
-
不要将
console例程使用的输出格式与您的值的实际情况相混淆。控制台以它认为有助于调试的方式向您显示事物,并且不同的控制台执行不同的操作。 -
此外,您发布的第一段代码也没有任何意义。循环构造一个对象并将其分配给
newValue,但随后它不使用newValue。 -
问题是你被分配了
0而不是newValue。这就是为什么数组不包含您期望的“对象” -
在构建字典的代码中,您不使用 newValue 做任何事情
标签: javascript json dictionary