comment analyser le fichier JSON avec GSON
J'ai une question très simple JSON avec des critiques de produits, comme:
{
"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."
}
J'aimerais lire dans mon application Java à l'aide de GSON. J'ai construit une classe afin de conserver les résultats de chaque examen:
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...
Pour lire le fichier JSON, mon code est:
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
Avec ce code, je ne peux que récupérer le premier examen dans le JSON, donc ma question est: comment parcourir tous les lecteur et obtenir les prochains examens? Je n'ai pas besoin de stocker les examens dans une Liste, il vous suffit d'accéder à l'objet une fois. Toute aide plus que bienvenue.
- Analyser la chaîne que vous recevez dans une nouvelle JSONArray(). Pour chaque objet du tableau, ne gson.fromJson(objet, Review.class), puis tous les ajouter à une Liste vide<Examen> liste = new LinkedList<Examen>(); Comme dans les analyser de manière séquentielle.
Vous devez vous connecter pour publier un commentaire.
Vous devez récupérer l'ensemble des données dans la liste, puis faire l'itération comme c'est un fichier et deviendra inefficace autrement.
Review[] data = gson.fromJson(reader, Review[].class);
?juste analyser un tableau:
alors si vous avez besoin, vous pouvez également créer une liste de cette façon:
P. S. votre chaîne json devrait ressembler à ceci:
Dans le cas où vous avez besoin de l'analyser à partir d'un fichier, je trouve que la meilleure solution pour utiliser un
HashMap<String, String>
à utiliser à l'intérieur de votre code java pour mieux manipultion.Essayer ce code: