Tôi có một JSON rất đơn giản với ý kiến cho sản phẩm, như:làm thế nào để phân tích tệp JSON với GSON
{
"reviewerID": "A2XVJBSRI3SWDI",
"asin": "0000031887",
"reviewerName": "abigail",
"helpful": [0, 0],
"unixReviewTime": 1383523200,
"reviewText": "Perfect red tutu for the price. ",
"overall": 5.0,
"reviewTime": "11 4, 2013", "summary": "Nice tutu"
}
{
"reviewerID": "A2G0LNLN79Q6HR",
"asin": "0000031887",
"reviewerName": "aj_18 \"Aj_18\"",
"helpful": [1, 1],
"unixReviewTime": 1337990400,
"reviewText": "This was a really cute",
"overall": 4.0,
"reviewTime": "05 26, 2012",
"summary": "Really Cute but rather short."
}
Tôi muốn đọc nó vào ứng dụng Java của tôi sử dụng GSON. Tôi đã xây dựng một lớp học để giữ kết quả cho mỗi lần xem xét:
public class Review {
private String reviewerID;
private String asin;
private String reviewerName;
private ArrayList<Integer> helpful;
private String reviewText;
private Double overall;
private String summary;
private Long unixReviewTime;
private String reviewTime;
public Review() {
this.helpful = Lists.newArrayList();
}
// some getters and setters...
Để đọc các tập tin JSON, mã của tôi là:
Gson gson = new Gson();
JsonReader reader = new JsonReader(new FileReader(filename));
Review data = gson.fromJson(reader, Review.class);
data.toScreen(); // prints to screen some values
Với mã này, tôi chỉ có thể lấy việc xem xét đầu tiên trong JSON , vì vậy câu hỏi của tôi là: làm thế nào để lặp qua tất cả người đọc và nhận được các đánh giá tiếp theo? Tôi không cần lưu trữ các đánh giá trong Danh sách, chỉ cần truy cập vào đối tượng một lần. Bất kỳ sự giúp đỡ nào nhiều hơn sự chào đón.
Phân tích chuỗi bạn nhận được thành một JSONArray mới(). Đối với mỗi đối tượng trong mảng, hãy thực hiện gson.fromJson (đối tượng, Review.class), sau đó thêm tất cả chúng vào danh sách trống list = new LinkedList (); Như trong, phân tích chúng tất cả tuần tự. –
Schaka