从AcousticBrainz解密JSON

时间:2014-11-21 07:26:01

标签: java json

我偶然发现了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"));

1 个答案:

答案 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