Ich habe ein Json wie diese, ich habe diese Aufgabe Mapper mit einer Klasse kartieren, wo ich Auth als JsonNode in der Klasse UserData.javaWie wird der dynamische Schlüssel in einem JSON-Knoten einer Klasse zugeordnet?
{
"auth": [
{
"user_admin": [
{
"name": [
"harry"
],
"department": [
"MC"
],
"userid": [
"1234"
]
}
]
},
{
"user_employee": [
{
"name": [
"stella"
],
"department": [
"CC"
],
"role": [
"employee"
]
}
]
}
],
"language":"english",
"sub": "f598ab"
}
I json angesehen haben Knoten verwendet haben auth, um es wie folgt einer Klasse UserData.java zuzuordnen.
@[email protected]
private JsonNode authorization;
@[email protected]
private String language;
@[email protected]
private String sub;
Jetzt möchte ich die Werte user_admin und user_employee abzubilden, die zu einer anderen Klasse dynamisch sind, die Namen haben, Abteilung, Benutzer-ID. Ich habe eine Klasse auth.java erstellt und diesen Code darin eingefügt.
@Getter @Setter
private List< String> name;
@Getter @Setter
private List<String> department;
@Getter @Setter
private List<String> userid;
@Getter @Setter
private List<String> role;
jetzt habe ich den Code unten versucht, es auf der Karte, aber seine Arbeit nicht, dass ich
UserData mappedObject= (UserData)commonUtils.readJsonStringRespondToObjRequest((json), UserData.class);
Auth roleData= mapper.treeToValue(mappedObject.getAuth(), Auth.class);
Fehler bekomme ich bekam ist
Can not deserialize instance of Auth.java out of START_ARRAY
Versuchen Sie die Deserialisierung in ein Array von Auth statt eines einzelnen Auth-Objekts. – alayor
wie geht das? @alayor – maya