У меня есть очень простой JSON с обзорами для продуктов, как:как разобрать файл JSON с 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."
}
Я хотел бы, чтобы прочитать его в мое приложение Java с помощью GSON. Я построил класс для хранения результатов для каждого обзора:
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...
Для чтения файла в формате JSON, мой код:
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
С помощью этого кода, я могу только получить первый обзор в формате JSON , поэтому мой вопрос: как пройти через все читателя и получить следующие обзоры? Мне не нужно хранить обзоры в списке, просто нужно получить доступ к объекту один раз. Любая помощь более чем приветствуется.
Разберите строку, которую вы получите, в новый JSONArray(). Для каждого объекта в массиве do gson.fromJson (object, Review.class), затем добавьте все их в пустой список list = new LinkedList (); Как и в, разбирайте их все последовательно. –
Schaka