【问题标题】:getJSON with [ ] doesn't work带 [ ] 的 getJSON 不起作用
【发布时间】:2014-04-23 22:50:47
【问题描述】:

我在这方面不是很有经验,但我只是调用一个 API 来返回这个

[
   {
      "beatmapset_id":"18860",
      "beatmap_id":"66609",
      "approved":"2",
      "approved_date":"2010-08-15 10:04:19",
      "last_update":"2010-08-15 10:00:44",
      "total_length":"468",
      "hit_length":"447",
      "version":"Legend",
      "artist":"DragonForce",
      "title":"Revolution Deathsquad",
      "creator":"Lesjuh",
      "bpm":"250",
      "source":"",
      "difficultyrating":"3.95095",
      "mode":"0"
   }
]

我的html:

$(document).ready(function(){    

$.getJSON('whatever.html', function(fbResults) {

document.write(fbResults.beatmapset_id);

     });

}); 

现在的问题是,这种方式不起作用,但如果我从 JSON 代码中删除“[”和“]”,它就会起作用。

好吧,我不能只告诉制作这个 API 的人删除那些,我该怎么办?

编辑:现在还有另一个问题。 https://osu.ppy.sh/api/get_beatmaps?k=5051a27169de8f360636fb0c3a108e8a3dab24b2&b&b=66609 如果我将此作为链接,它将不起作用。 我尝试了回调,但这也不起作用。 https://osu.ppy.sh/api/get_beatmaps?k=5051a27169de8f360636fb0c3a108e8a3dab24b2&b&b=66609?callback=?'

【问题讨论】:

    标签: json api get getjson


    【解决方案1】:

    方括号表示这是一个包含一项的数组。

    要获取此数组中的第一个(也是唯一一个)项目,只需将 [0] 附加到它。

    在你的例子中:

    document.write(fbResults[0].beatmapset_id);
    

    【讨论】:

    • 很抱歉,有些东西还是不行。 osu.ppy.sh/api/… 当我将其用作链接时,它不起作用,但是当我复制其中的内容并将其放入 html 时,它就起作用了。这很尴尬。
    • @user356608 - 这是因为您的来源。它需要提供标题“Access-Control-Allow-Origin:*”以便通过 jquery 的getJSON 方法访问。这与您原来的问题不同。
    • 哦,好吧。这是否意味着在他们更改 API 之前我将无法使用他们的 API?
    • @user356608 - 可能有一种解决方法,但我不知道。
    【解决方案2】:

    试试fbResults[0].beatmapset_id

    编辑:有关更多解释,请参阅 Andrew Shepherd 的回答:P

    【讨论】:

    • 很抱歉,有些东西还是不行。 osu.ppy.sh/api/… 当我将其用作链接时,它不起作用,但是当我复制其中的内容并将其放入 html 时,它就起作用了。这很尴尬。
    猜你喜欢
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 2010-11-08
    • 2013-11-27
    • 1970-01-01
    相关资源
    最近更新 更多