我实际上有两个问题,两个问题都可能很简单,但由于某些奇怪的原因我无法弄清楚...我之前也使用过 JSON 100 多次!但这是有问题的 JSON:
{"69256":{
"streaminfo":{
"stream_ID":"1025",
"sourceowner_ID":"2",
"sourceowner_avatar":"http:\/\/content.nozzlmedia.com\/images\/sourceowner_avatar2.jpg",
"sourceownertype_ID":"1",
"stream_name":"Twitter",
"streamtype":"Social media"
"appsarray":[]
},
"item":{
"headline":"Charboy",
"main_image":"http:\/\/content.nozzlmedia.com\/images\/author_avatar173212.jpg",
"summary":"ate a tomato and avocado for dinner...",
"nozzl_captured":"2010-05-12 23:02:12",
"geoarray":[{
"state":"OR",
"county":"Multnomah",
"city":"Portland",
"neighborhood":"Downtown",
"zip":"97205",
"street":"462 SW 11th Ave",
"latitude":"45.5219",
"longitude":"-122.682"
}],
"full_content":"ate a tomato and avocado for dinner tonight.
such tasty foods. just enjoyable.",
"body_text":"ate a tomato and avocado for dinner tonight.
such tasty foods. just enjoyable.",
"author_name":"Charboy",
"author_avatar":"http:\/\/content.nozzlmedia.com\/images\/author_avatar173212.jpg",
"fulltext_url":"http:\/\/twitter.com\/charboy\/statuses\/13889868936",
"leftovers":{
"twitter_id":"tag:search.twitter.com,2005:13889868936",
"date":"2010-05-13T02:59:59Z",
"location":"iPhone: 45.521866,-122.682262"
},
"wordarray":{
"0":"ate",
"1":"tomato",
"2":"avocado",
"3":"dinner",
"4":"tonight",
"5":"tasty",
"6":"foods",
"7":"just",
"8":"enjoyable",
"9":"Charboy",
"11":"Twitter",
"13":"state:OR",
"14":"county:Multnomah, OR",
"15":"city:Portland, OR",
"16":"neighborhood:Downtown",
"17":"zip:97205"
}
}
}
}
问题 1:
当数字是随机的时,如何循环遍历每个项目 (69256)?例如项目 1 是 123
,项目 2 是 646
?例如,普通 JSON 提要将具有以下内容:
{'item':{'blah':'lorem'},'item':{'blah':'ipsum'}}
JS 会像 console.log(item.blah)
一样返回 lorem
然后在循环中返回 ipsum
不知道对象的第一项怎么办?
问题 2:
如何从 geoarray
对象中选择项目?我试过了:
json.test.item.geoarray.latitude
和
json.test.item.geoarray['纬度']
最佳答案
Question 1: How do I loop through each item (69256) when the number is random?
您可以使用 for in
获取 JS 对象的属性名称声明:
for (var property in object) {
if (object.hasOwnProperty(property)) {
alert(property + '=' + object[property]);
}
}
要获取第一个 JSON,您可以这样做:
var data;
for (var property in json) {
if (json.hasOwnProperty(property)) {
data = json[property];
break;
}
}
Question 2: How do I select items from the geoarray object?
geoarray
实际上是一个包含一项的数组。使用 [0]
来抓取它。
var latitude = data.item.geoarray[0].latitude;
如果它实际上包含多个项目,那么您需要使用简单的 for
遍历它带有索引或使用 jQuery.each()
的语句.
要了解有关 JSON 的更多信息,您可以找到 this tutorial有用。
关于javascript - 如何从 JSON 中的数组中选择名称未知的第一个属性和第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2824299/