2011-10-04 26 views
6

Non riesco a capirlo. Ho esaminato un paio di post SO (here e here) e la mia situazione è leggermente diversa.GSON che analizza il campo dinamico JSON

Non sono sicuro di dover registrare un nuovo TypeToken o cosa. Ma il mio oggetto JSON è simile al seguente:

{ 
    "id": 6, 
    "error": "0", 
    "dates": { 
     34234 : "2011-01-01" // I want to parse the date into a string. 
     87474 : "2011-08-09" // The first values are all unique. 
     .     //this can be any number of entries. 
     . 
     . 
     74857 : "2011-09-22" 
    } 
} 

ho creato entrambi i miei oggetti come questo:

public class Response { 

    public Integer id; 
    public String error; 
    public DateList dates; 
} 

file separato:

public class DateList { 

    public List<Map<Integer, String>> dateString; 
} 

io non sono sicuro di come tweek per farlo bene. La documentazione non sembra aiutare ... E gli altri esempi che ho visto sono l'analisi di un oggetto personalizzato, non un tipo di stringa.

Grazie!

+2

Non so cosa sia GSON, ma 'List ' manca almeno un '>'. Inoltre, non dovrebbe essere solo una mappa e non un elenco di mappe? – svens

+0

Mi spiace di non aver copiato e incollato quel codice. Grazie per l'aiuto! –

risposta

12

ho provato in questa forma:

JSON

{ 
    "id": 6, 
    "error": "0", 
    "dates": { 
     "34234" : "2011-01-01" 
     "87474" : "2011-08-09" 
     "74857" : "2011-09-22" 
    } 
} 

E il Response.java

public class Response { 
    public Integer id; 
    public String error; 
    public Map<Integer, String> dates; 
} 

Almeno questo sembrava funzionare out of the box.

+0

Grazie !! Sapevo che era qualcosa di facile! –

+0

Ha funzionato anche per me. Pensavo di dover scrivere un TypeAdapter personalizzato o qualcosa di magico. – squeeish