2017-01-20 3 views
1

Ich habe die folgende JSON Struktur:JSON-Parser nicht wiederkehrenden Zahlen

{ 
    "status": "Completed", 
    "notes": null, 
    "members": { 
     "0":  { 
     "year": "2", 
     "details":   { 
      "id": "14899975", 
      "anotherId": "11013306" 
     }, 
     "aName": "Fred", 
     "amounts":   { 
      "First": 589.48, 
      "Second": 1000, 
      "Third": 339.48 
     } 
     }, 
     "1":  { 
     "year": "2", 
     "details":   { 
      "id": "14899976", 
      "anotherId": "11013306" 
     }, 
     "aName": "George", 
     "amounts":   { 
      "First": 222.22, 
      "Second": 2000, 
      "Third": 22.22 
     } 
     }, 
     "2":  { 
     "year": 1, 
     "details":   { 
      "id": "14899976", 
      "anotherId": "11013306" 
     }, 
     "aName": "Albert", 
     "amounts":   { 
      "First": 333.33, 
      "Second": 3000, 
      "Third": 33.33 
     }, 
     } 
    } 
} 

I Frühling RESTTemplate und JacksonMapping2HttpMessageConverter benutzen und die folgenden Strukturen das Ergebnis der Parsen die oben JSON Struktur zu erhalten:

@JsonIgnoreProperties(ignoreUnknown = true) 
public class Response { 
    private String   status; 
    private String   notes; 
    private Map<String,Struct1> quotes; 
} 

@JsonIgnoreProperties(ignoreUnknown = true) 
class Struct1 { 
    private int   year; 
    private Struct2  details; 
    private String   aName; 
    private Struct3  amounts; 
} 

@JsonIgnoreProperties(ignoreUnknown = true) 
class Struct2 { 
    private String id; 
    private String anotherId; 
} 

@JsonIgnoreProperties(ignoreUnknown = true) 
class Struct3 { 
    private float First; 
    private float Second; 
    private float Third; 
} 

Alle diese haben auch geeignete Setter und Getter für alle Bereiche.

Mein Problem ist, dass die Zahlenwerte in Struct3 nicht ausgefüllt sind. Ich habe versucht, sie float, Float, String und BigDecimal zu machen, und das Ergebnis ist entweder Null oder 0.0.

Ich habe versucht, für das erste Feld einen Haltepunkt in dem Setter setzen,

die Hoffnung

Was bin ich? Können die Großbuchstaben im JSON ein Problem verursachen, brauche ich alternative Feldnamen?

+0

Wo ist der Code zum Erstellen Ihrer Struct3? –

+0

Der einzige Code, den ich zum "Erstellen" einer Instanz von all dem habe, ist der Aufruf der RESTTemplate, die den MappingJackson2HttpMessageConverter enthält; Es füllt alle anderen Felder aus, außer denen in Struct3. – arcy

Antwort

1

Es stellte sich heraus, dass die Großbuchstaben am Anfang der Feldnamen waren; Ich fügte Annotationen wie @JsonProperty("First") in die Zeile vor dem Getter des Feldes ein und benannte das Feld in first um und jetzt funktioniert es.

Verwandte Themen