2017-05-03 1 views
-1

Je voudrais savoir comment je peux représenter cette partie d'un fichier JSON dans une structure Java-POJO. Le fichier JSON lui-même a une structure que je ne l'ai jamais vu avant:GSON - Gestion des doubles accolades

"codeShares": [ 
     { 
      "codeShare": { 
      "airlineCode": "LH", 
      "trackNumber": "9695", 
      "suffix": "" 
      } 
     }, 
     { 
      "codeShare": { 
      "airlineCode": "NH", 
      "trackNumber": "5350", 
      "suffix": "" 
      } 
     }, 
     { 
      "codeShare": { 
      "airlineCode": "TP", 
      "trackNumber": "8988", 
      "suffix": "" 
      } 
     }, 
     { 
      "codeShare": { 
      "airlineCode": "UA", 
      "trackNumber": "7212", 
      "suffix": "" 
      } 
     } 
     ] 

S'il n'y avait pas ces balises « chaque fois » Partage de code, mais un tableau « normal », je comprendrais comment représenter dans un POJO mais comme j'ai testé, une liste ne fonctionne pas. La taille de la liste correspond à la quantité de balises "codeShare" dans le fichier, mais les valeurs réelles telles que "airlineCode" etc. sont toujours nulles. Si ce n'est pas la liste <>, que dois-je prendre?

Classe Partage de code:

private String airlineCode; 
private String trackNumber; 
private String suffix; 

    public CodeShare(String airlineCode, String trackNumber, String suffix) { 
     this.airlineCode = airlineCode; 
     this.trackNumber = trackNumber; 
     this.suffix = suffix; 
    } 

    public String getAirlineCode() { 
     return airlineCode; 
    } 

    public String getTrackNumber() { 
     return trackNumber; 
    } 

    public String getSuffix() { 
     return suffix; 
    } 

    @Override 
    public String toString() { 
     return airlineCode + trackNumber; 
    } 

Kenta1561

+0

Il existe des outils pour que: voir http://www.jsonschema2pojo.org/ par exemple (source d'utilisation JSON à droite) –

+0

Merci! J'ai découvert que je devais créer deux classes pour "CodeShare": D – wafflemiracle

Répondre

0

Créer une autre classe qui contient l'objet de partage de code.

E.g.

public class CodeShareWrapper { 
    public CodeShare codeShare; 

    public CodeShareWrapper() {} 
} 

Maintenant, la classe de réponse sera aussi:

public class MyResponse { 
    public List<CodeShareWrapper> codeShares; 

    public MyResponse() {} 
} 

Utilisation MyResponse avec amélioration ou tout de-sérialisation réponse JSON en utilisant Gson.

MyResponse = new Gson().fromJson(jsonString, MyResponse.class);