有没有办法用Java解析JSON?

时间:2016-03-23 14:43:34

标签: java json

这是我到目前为止所做的:

 public Bitmap getAlbumCover(Context context, String song, String artist) {
    this.context = context;
    song = song.replace(" ", "%20");
    artist = artist.replace(" ", "%20");

    try {
        conn = new URL("https://api.spotify.com/v1/search?q=track" + song + ":%20artist:" + artist + "&type=track)").openConnection();
    } catch (IOException e) {
        e.printStackTrace();
    }
    if (conn != null)
        conn.setDoOutput(true);


    try {
        reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    } catch (IOException e) {
        e.printStackTrace();
    }

    if (reader != null) {
        // Read Server Response
        String line2 = null;
        try {
            while ((line2 = reader.readLine()) != null) {
                sb.append(line2);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            json = new JSONArray(sb.toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    JSONParser parser= new JSONParser();
    try {
        JSONObject jsonObject = (JSONObject) parser.parse(reader);
        try {
            array = (JSONArray) jsonObject.get("items");
        } catch (JSONException e) {
            e.printStackTrace();
        }


        // take each value from the json array separately

    } catch (IOException e) {
        e.printStackTrace();
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return null;

}

我使用的JSON位于:      https://api.spotify.com/v1/search?q=track:Ready%20To%20Fall%20artist:rise%20against%20&type=track

我正在尝试获取位于images数组中的图片网址和位于项目中的preview_track网址。

1 个答案:

答案 0 :(得分:1)

我使用Jackson库将JSON解析为java opbject。

如果使用与JSON相同的结构创建java对象,可以使用以下命令完成:

   ObjectMapper mapper = new ObjectMapper();
   mapper.readValue(jsonUrl, YourClass.class);

因此,您的OBJECT将拥有曲目,然后曲目将具有对象相册和相册将具有对象的其他细节。只需构建它就像JSON一样,你就在那里。