我偶然发现了AcousticBrainz,我正试图从他们的数据库中获取数据。他们给了我API(acousticbrainz.org/api)。 Unfortunatley我是JSON和JSON的新手 我不确定如何获取信息。我想从中获取信息 http://acousticbrainz.org/8e160042-b451-4f96-b59a-d06831d2ae05/high-level
我知道只有两个JSON对象。 “highlevel”和“metadata”
这是他们展示信息的方式 http://acousticbrainz.org/8e160042-b451-4f96-b59a-d06831d2ae05
我用Java编写代码,这就是我所拥有的
String URL = "http://acousticbrainz.org/8e160042-b451-4f96-b59a-d06831d2ae05/high-level";
String Json = IOUtils.toString(new URL(URL));
JSONObject jo = new JSONObject(Json);
JSONObject jom = new JSONObject(jo.get("metadata"));
System.out.println(jo.names());
System.out.println(jom.names());
System.out.println(jo.get("metadata"));
答案 0 :(得分:0)
如果您要进行API调用并获取json数据,可以使用以下代码:
URIBuilder builder = new URIBuilder().setScheme("http")
.setHost("acousticbrainz.org")
.setPath("/8e160042-b451-4f96-b59a-d06831d2ae05/high-level");
HttpUriRequest httpUriRequest = new HttpGet(builder.build());
HttpResponse httpResponse = HttpClientBuilder.create().build().execute(httpUriRequest);
String response = EntityUtils.toString(httpResponse.getEntity());
JSONObject jsonObject = new JSONObject(response);
System.out.println(jsonObject.toString());
如果你想解析json数据并使用它,你可以检查下面的示例代码:
JSONObject metaDataObject = jsonObject.getJSONObject("metadata");
String md5EncodedValue = metaDataObject.getJSONObject("audio_properties")
.getString("md5_encoded");
System.out.println(md5EncodedValue);
如果您使用的是maven,请添加以下依赖项
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20131018</version>
</dependency>
或使用this link下载jar