Ich habe eine sehr einfache JSON mit Bewertungen für Produkte, wie:wie JSON-Datei analysieren mit 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."
}
Ich mag es in meine Java-Anwendung lesen Gson verwenden. Ich habe eine Klasse gebaut, um Ergebnisse für jede Bewertung zu halten:
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...
die JSON-Datei zu lesen, ist mein Code:
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
Mit diesem Code kann ich nur die erste Rezension im JSON abrufen Meine Frage ist also: Wie durchläuft man den ganzen Leser und bekommt die nächsten Rezensionen? Ich muss die Bewertungen nicht in einer Liste speichern, sondern muss nur einmal auf das Objekt zugreifen. Jede Hilfe mehr als willkommen.
Analysieren Sie die Zeichenfolge, die Sie empfangen, in ein neues JSONArray(). Führen Sie für jedes Objekt in dem Array gson.fromJson (object, Review.class) aus, und fügen Sie dann alle zu einer leeren Liste hinzu list = new LinkedList (); Wie in, analysieren sie alle nacheinander. –
Schaka