一个随机查询,比如
https://api.soundcloud.com/tracks.json?genre=Rnbhiphop
给出了类似于
[
{
"kind":"track",
"id":161532719,
(...)
"artwork_url":null,
(...)
},
{
"kind":"track",
"id":161532718,
(...)
"artwork_url":null,
(...)
},
(..)
]在很多情况下,artwork_url是空的,尽管这是不一致的。
然而,当查看单个音轨id 161532719 (上面列表中的第一个)时
http://api.soundcloud.com/tracks/161532719.json
我们会得到
{
"kind":"track",
"id":161532719,
(...)
"artwork_url":"http://i1.sndcdn.com/artworks-000087026689-ogd56p-large.jpg?e76cf77",
(...)
}..。奇怪的是,这揭示了曲目161532719具有有效的artwork_url。许多其他曲目也是如此。
这是一个bug,还是我做错了什么?
发布于 2014-11-15 07:03:30
它看起来像是集合端点(在本例中是genre),有一个后端bug,其中不能获取图片。
null与未定义的不同,而是故意设置的。如果遇到空值,您可以使用从单个轨道端点收集的数据,将其聚合到那里的轨道数据。
如果您选择这样做,我建议您在获得所需的id后立即触发跟踪端点的请求,并使用id进行更新。
发布于 2014-12-18 04:07:53
如果音轨的上传者没有附加图像,Soundcloud将显示上传者的头像。但是,当你试图从这类曲目的JSONObject中获取"artwork_url“时,你会得到"null”。
要解决此问题,并使用相同的逻辑Soundcloud,只需添加:
String artUrl = trackJson.getString("artwork_url");
if (artUrl == "null") {
JSONObject user = trackJson.getJSONObject("user");
artUrl = user.getString("avatar_url");
}https://stackoverflow.com/questions/25112796
复制相似问题