JSON Wrapper Klasse nicht Deserialisierung
Ich habe etwas JSON, das so aussieht (Daten wurden aus Datenschutzgründen entfernt.
{"user":{"id":"","email":"","first_name":"","last_name":""}, "STUFF I DONT WANT HERE"}
Ich habe dafür eine innere Wrapper-Klasse geschrieben:
public with sharing class WrapperUserJson {
public String id;
public String email;
public String first_name;
public String last_name;
}
In einer Methode mache ich so etwas WrapperUserJson data = (WrapperUserJson)JSON.deserialize(st, WrapperUserJson.class);
Es wird jedoch immer null zurückgegeben. Ich weiß, dass der JSON an ihn übergeben wird, also verstehe ich ihn nicht. Was vermisse ich?
Antworten
Ihnen fehlt das Attribut der obersten Ebene user. Sie benötigen eine zweite Wrapper-Klasse:
public class WrapperResponseJson {
WrapperUserJson user;
}
public class WrapperUserJson {
public String id;
public String email;
public String first_name;
public String last_name;
}
Was Sie dann in die Deserialisierungsmethode einspeisen:
WrapperResponseJson data = (WrapperResponseJson)JSON.deserialize(st, WrapperResponseJson.class);
Sie können automatisch Code aus JSON mit json2apex generieren , einem großartigen Tool zum schnellen Erstellen von Apex aus einer bestimmten JSON-Quelle.