2017-02-19 4 views
0

Java-Objekt:Parse ein bestimmtes Feld eines JSON ohne Wrapper-Klasse

public class Foo { 
@JsonProperty("name") 
private String name; 
@JsonProperty("surname") 
private String surname; 

// getters + setters 
} 

JSON:

{ 
    "meta":{ 
     "code":200 
    }, 
    "data":[ 
     { 
     "name":"John", 
     "surname":"Smith" 
     } 
    ] 
} 

API-Aufruf:

return restTemplate.getForEntity(requestUrl, Foo[].class).getBody(); 

Ist es möglich, „Daten zu analysieren "Array ohne eine zusätzliche Wrapper-Klasse zu erstellen? Ich habe versucht, die @JsonRootName("data") Annotation über meine Java-Klasse hinzuzufügen, aber es hat nicht funktioniert.

+0

Gson dies leicht recht machen kann. http://stackoverflow.com/questions/37231894/using-gson-and-retrofit-2-to-deserialize-complex-api-responses –

+0

, die noch komplexer aussieht - Hinzufügen von Hunderten von Klassen für das Parsing ist nicht, was ich suche für – Bravo

+0

Hunderte? Es ist 1 TypeAdapterFactory und Jackson hat die benutzerdefinierte Deserialisierung selbst. Java ist objektorientiert, also was hast du gegen Klassen? –

Antwort

0

können Sie versuchen, mit:

import org.json.*; 

JSONObject obj = new JSONObject(" .... "); 
String name = obj.getJSONObject("data").getString("name"); 
+0

Sieht aus wie Jackson verwendet wird, nicht org.json –

Verwandte Themen