Cách parse chuỗi JSON trong Java

Em có một biến được lưu theo kiểu dữ liệu là string và có cấu trúc JSON:

{
    source_link: "http://example.com/link.html",
    image_thumbnail: "http:/example.com/imgages/test.jpg",
    metadata: {
        last_updated: "2017-05-11",
        category: "Entertainment"
    }
}

Các bác cho em hỏi làm thế nào có thể parse được chuỗi này để lấy ra các thuộc tính bên trong như source_link, image_thumbnail và cà category trong metadata?

1 Câu Trả Lời

Trung Quân Trung Quân

Bạn có thể sử dụng thư viện có sẵn của Java, tuy nhiên thông thường thì mình thấy mọi người ít sử dụng thư viện này do API của nó khá rườm rà và thư viện org.json thường được dùng để thay thế:

import org.json.*;
String stringJson;

// Gán giá trị cho stringJson
// ...
JSONObject objectJson = new JSONObject(stringJson);
String sourceLink = objectJson.getString("source_link");
String imageThumbnail = objectJson.getString("image_thumbnail");
String category = objectJson.getJSONObject("metadata").getString("category");

Đối với kiểu dữ liệu mảng bạn sử dụng method getJSONArray(). Ví dụ nếu trong metadata bạn có thêm một thuộc tính là categories đểu lưu một mảng nhiều giá trị category thì đoạn code sử dụng để lấy từng giá trị trong trường ra như sau:

JSONArray categories = objectJson.getJSONObject("metadata").getJSONArray("categories");

for (int i = 0; i < categories.length(); i++)
{
    System.out.println((categories.getInt(i));
}

Bạn có thể tham khảo thêm về thư viện này ở trên Github.

Nội dung tối thiểu 100 ký tự

Câu Hỏi Liên Quan