【问题标题】:How to get number of response of JSON? [duplicate]如何获取 JSON 的响应数? [复制]
【发布时间】:2016-02-06 03:07:13
【问题描述】:

即json请求

http://www.omdbapi.com/?s=harry

点击链接查看响应的结构。如何获取多个对象以创建for loop

【问题讨论】:

  • for cycle 你的意思是 for 循环?
  • @Ælex 是的,我会编辑
  • response.Search.length 不起作用?
  • 你要数Search的数量?

标签: javascript arrays json


【解决方案1】:

在这种情况下,首先您需要JSON.parse 数据(字符串):

var data = JSON.parse(string);

获取项目数为:

data.length;

你可以对文件做同样的事情(假设是 node.js):

require('fs').readFile(JSON.parse(file), 'utf8', function (err, data
{
    if (err) throw err;
    // your data is now parsed
});

然后你迭代使用你感兴趣的数组:

for (var prop in data)
{
    // do something with item
    var item = data[prop];
}

现在的迭代不需要数组长度的先验知识:

for (var i = 0; i < data.length; ++i)

该 JSON 似乎有一个 Search 对象数组(请自行查看:http://json.parser.online.fr/

【讨论】:

  • 你真的要使用for each吗?
  • @FelixKling 是的,为什么不呢?
  • "npm/node.js 也支持它 afaik" 可能不是那种语法,因为 Chrome (V8) 不支持它。 “尽管语法不同” 也许你的意思是 for...of,它是 ES6 的一部分(并且很好用)。您不应该建议已弃用的内容。
  • @FelixKling 替换为 for - in :-)
  • :) 在这种情况下,您可能应该更改变量名称,因为 item 不是属性名称,而 data[item] 将是值。
【解决方案2】:
response.Search.map(function(obj){
   //loop here
});

而不是使用for loop

【讨论】:

  • 这与 jQuery 到底有什么关系?此外,.map 不用于循环。请改用.forEach
  • ops 我只是倾向于 .map 函数不是 jquery 函数,因此它是一个原始的 javascript 函数.. 抱歉 @FelixKling :3 。还研究了 .mapforEach 之间的区别,但我仍然不明白为什么 .map 不能用于循环 xD
猜你喜欢
  • 1970-01-01
  • 2019-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多