如何从Javascript中没有对象名称的对象中获取值
我知道这个问题听起来很奇怪。但这是一个奇怪的问题。让我澄清一下 我正在使用facebook图形api。我的页面的提要以JSON格式返回,我在这里有一点JSON:如何从Javascript中没有对象名称的对象中获取值,javascript,Javascript,我知道这个问题听起来很奇怪。但这是一个奇怪的问题。让我澄清一下 我正在使用facebook图形api。我的页面的提要以JSON格式返回,我在这里有一点JSON: "message": "A3Media Uk Website is fully up and running! Tell your friends, We can't make Beautiful Websites without clients!\n - Alex Morley-Finch", "message_tags": {
"message": "A3Media Uk Website is fully up and running! Tell your friends, We can't make Beautiful Websites without clients!\n - Alex Morley-Finch",
"message_tags": {
"116": [
{
"id": "514033508",
"name": "Alex Morley-Finch",
"offset": 116,
"length": 17
}
]
}
据我所知,有一个名为message\u tags
的对象,它包含一个名为116
的对象数组,该数组的索引0包含一个变量id、name、offset和length
的对象
现在我想做的是,显然,将消息
变量中的文本“Alex Morley Finch”替换为标记“name”:“Alex Morley Finch”
。然后使用id、长度和偏移量,我可以使用id将文本替换为指向该配置文件的html链接
这一切看起来都很简单,但是,我显然希望我的代码是动态的,这样代码将适用于任何位置的任何标记
对象数组的名称始终与其中包含的偏移量匹配
实际问题是:
如何动态获取对象数组的名称(在本例中为“116”)
因为我的代码类似于(伪代码):
这将给我留下“消息”的html表示
问题是我无法获取消息标签的名称,因为我必须执行以下操作:
// data[index] represents the current message
var json = JSON.parse(XmlHttpResponse.responseText);
json.data[index].message_tags.116[0].name;
正如我们所看到的,这不是动态的。此代码仅适用于此标记
那么,如何在不引用116的情况下获得名称?有可能吗
我曾考虑尝试迭代1、2、3、4、5-->116,但这将导致性能非常高的成本和糟糕的编码,我甚至不确定是否可以通过变量名引用数组
我真的被难住了
请帮忙
Alex这将遍历所有标记。如果有多个标记,您可能需要添加代码来检查它是否是要更改的代码
for (var tag in message_tags) {
message_tags[tag].name = "...";
}
用于解决方案中的
使用
中的遍历对象属性,然后根据这些结果进行操作。您只需使用。旁注:您的问题实际上与JSON无关,而是如何访问JavaScript对象的属性 是一个链接),但我仍然需要使用“116”。对于(vars in 116){}No,您可以在message_tags
中迭代对象的属性。
for (var tag in message_tags) {
message_tags[tag].name = "...";
}