【发布时间】:2016-02-26 02:07:44
【问题描述】:
我有一个来自服务的 json 响应,如下所示:
检索数据:
{
"35736":{"Id":0, "Name":"car"}
,"48973":{"Id":0, "Name":"book"}
,"41981":{"Id":0, "Name":"dog"}
}
我想使用数字键获取属性值,例如:
console.log(retrievedData["35736"]);
有一个迭代的元素列表。每个元素都有一个与键属性值匹配的“序列”。
当我使用硬编码值时:
console.log(retrievedData["35736"]);
它显示正确的对象,但是当我像这样构建密钥时:
var a = String('"' + JSON.stringify(element.Serial()) + '"');
console.log(retrievedData[a]);
它返回undefined。
resultList.forEach(function (element) {
console.log("retrieved data, Serial:" + element.Serial());
var a = String('"' + JSON.stringify(element.Serial()) + '"');
console.log(a);
console.log(retrievedData[a]);
console.log(retrievedData["35736"]);
}
我在这里做错了什么?
输出值,控制台日志:
retrieved data, Serial:35736
v.ts:199 "35736"
v.ts:204 undefined
v.ts:206 Object {Id: 35736, Name: ""....
任何帮助将不胜感激。
【问题讨论】:
-
删除包裹密钥建筑的双引号:
String(JSON.stringify(element.Serial())); -
你是对的@hindmost,现在它可以工作了! :)
-
试试
var a = element.Serial().toString()
标签: javascript jquery knockout.js typescript