2017-02-01 6 views
1

Ich versuche, die folgende Antwort auf Karte:Karte hüllt Antwort in ein POJO

{ 
    "data": { 
     "id": "1574083", 
     "username": "snoopdogg", 
     "full_name": "Snoop Dogg", 
     "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg", 
     "bio": "This is my bio", 
     "website": "http://snoopdogg.com", 
     "counts": { 
      "media": 1320, 
      "follows": 420, 
      "followed_by": 3410 
     } 
} 

in ein Objekt, wo ich will nur die Benutzernamen, full_name und id Felder abzurufen.

Ex: so etwas wie:

public class User{ 
    String id; 
    String username; 
    String full_name; 

    // getters + setters 

} 

Gibt es eine Möglichkeit, dies ohne vorher zu tun, das Datenobjekt in einer Karte speichern zu müssen?

+0

Was ist falsch bei der Zuordnung der vollständigen 'Json' zum Objekt und erhalten die Felder, die Sie benötigten? – Arpit

Antwort

2

Verwenden Jackson API. Es sollte einfach sein:

ObjectMapper mapper = new ObjectMapper(); 
User user = mapper.readValue(jsonString, User.class); //jsonString is your actual json string. 

Sie möchten möglicherweise Ihre Benutzerklasse anpassen, um die JSON-Zeichenfolge anzupassen. Z.B. Ihre Benutzerklasse muss ein "Daten" -Feld haben wie List<Data> data; wo "Daten" ein anderer POJO ist. Sie können die Felder "id", "userName" usw. im "Data" -Pojo hinzufügen.

+1

Darüber hinaus gibt Ihnen die Jackson-Bibliothek auch Objekt-Mapper für XML und CSV, falls Sie diese benötigen. –

+1

Super, danke VHS - das hat den Trick gemacht. – Dayna

0

können Sie entweder tun es mit der Hand über, zum Beispiel, regexp oder verwenden jeder JSON-Bibliotheken wie Jackson, Gson usw.

0

Mit GSON ist es ziemlich einfach. Angenommen, Ihr JSON wird in einer String jsonString Variablen gespeichert.

Gson gson = new Gson(); 
YourObject = gson.fromJson(jsonString, YourObject.class); 

Obwohl ich bin nicht sicher, was passieren wird, da Ihr jsonString keinen Schlüssel User genannt haben. Dies sollte jedoch funktionieren, wenn Sie zuerst data von Ihrem jsonString extrahieren und Ihren POJO Data benennen.