我正在使用JavaScript,我有一个带有Twitter信息的json文件。我使用var content = data.text;
之类的内容访问它是没有问题的,因此我可以使用div
来更改innerHTML.
现在,我还试图检查是否存在某些#标签(以触发视频)。现在,我有一个名为data
的变量,它使用.getJSON
方法存储来自JSON文件的信息。
我可以使用time_zone
轻松访问data.user.time_zone
之类的属性,但是像标签这样的东西在对象数组中,我不知道如何访问,例如'text'。
这是'.json'(我编辑了一些信息,因为它太长了)。
{
"user": {
"following": null,
},
"in_reply_to_screen_name": null,
"entities": {
"user_mentions": [],
"urls": [],
"trends": [],
"symbols": [],
"hashtags": [
{
"text": "fuego",
"indices": [
25,
31
]
},
{
"text": "primaLED",
"indices": [
32,
41
]
}
]
},
"contributors": null,
}
我找到了一些“解决方案”,但没有一个正在运行,我是编程的新手,所以我真的迷失了。
答案 0 :(得分:0)
好的,这个答案将略过一些细节,因为你所要求的是一个相当广泛的主题,可以完全解释。这应该会给你很多线索,也是一个有效的答案。
首先,您需要为JSON对象指定一个名称,以便您可以引用它,如下所示:
var json = {
"entities": {
"hashtags": [
{
"text": "fire",
"indices": [
25,
31
]
},
{
"text": "water",
"indices": [
32,
41
]
}
]
}
};
或者,如果您从使用jQuery的API获取JSON,请执行以下操作:
var json;
$.getJSON('http://www.domain.com/api', function(data) {
json = data;
});
然后,您需要查看什么是对象{}
,以及JSON中的数组[]
。在下面的例子中,你会看到我用'点符号'遍历一个对象,即。 json.entries.hashtags
。然后我遍历一个数组,即。 for(...)
并创建索引i
。然后我可以使用该索引来完成遍历,即。 json.entries.hashtags[i]
。
var array = [];
for(var i = 0, hashtag; hashtag = json.entities.hashtags[i]; i++) {
array.push(hashtag.text);
}
console.log(array); // ["fire", "water"]
console.log(array[0]); // "fire"
console.log(array[1]); // "water"
在这里,我循环遍历JSON中的hashtags
数组,并选择text
的值并创建我自己的数组。这通常是最好的方法,特别是如果JSON不受您的控制 - 它可能包含1个主题标签,或1000个。
专业提示:如果我只想访问其中一个属性而不是循环,我可以这样做:
console.log(json.entities.hashtags[0].text); // "fire"
console.log(json.entities.hashtags[1].text); // "water"
修改强>
以下是测试某个标签并对其进行操作的方法:
var array = [];
var fire = false;
for(var i = 0, hashtag; hashtag = json.entities.hashtags[i]; i++) {
if(hashtag.text === "fire") {
fire = true;
}
}
if(fire) {
// do stuff
}