我有一个像这样的对象:
public class TreeNodeLabel {
TreeNodeLabel parent;
List<TreeNodeLabel> children;
Map<String, String> prop;
String name;
}
我想要这样获得JSONObject
"data": {
"auth": {
"myChallenges": "Visualiser vos défis",
"myMessages": "Accéder à la messagerie",
"myProfile": "Accéder à votre profil",
"myGroup": "Accéder à vos groupes",
"launchChallenge": "Lancer un défi",
"login": {
"login": "Me connecter",
"label": "Connectez-vous",
"loginLabel": "E-mail",
"passwordLabel": "Mot de passe",
"action": "Je me connecte",
"sign": "M'inscrire",
"facebook": "Facebook",
"google": "Google",
"lost": "Mot de passe oublié ?",
"lostParam": "Hey {name}, déjà {passwordCount, number} {passwordCount, plural, one {mot de passe oublié} other {mots de passe oubliés}} ce mois ci !",
"useSocialNetwork": "Utilisez vos réseaux sociaux pour vous connecter",
"noAccount": "Je n'ai pas de compte",
"errors": {
"loginRequired": "Email requis",
"loginFormat": "Format de l'email incorrect",
"passwordRequired": "Mot de passe obligatoire",
"passwordFormat": "Format invalide"
}
},
"socialNetworkErrors": {
"missingPermissions": "Vous devez partager votre email pour vous connecter avec votre compte Facebook.",
"inProgress": "Une connexion via Google est déjà en cours.",
"playServicesNotAvailable": "Les services Google Play ne sont pas installés ou pas à jour."
}
},
"message": {
"chatView": {
"loadPreviousMessages": "Charger les messages précédents",
"send": "Envoyer",
"placeholder": "Ecrivez un message..."
},
"conversation": {
"duration": "Il y a"
}
}
}
我尝试了一些不同的注释,例如(@ JsonManagedReference,@ JsonIgnore,@ JsonProperty) 但获取的JSON包含名为“ children”,“ prop”的对象,而不是每个子对象的属性“ name”以及此
下的prop列表答案 0 :(得分:0)
您可以将标记为@JsonValue的方法添加到TreeNodeLabel类中,以生成所需的结构。
例如
@JsonValue
public Map<String, Map<String, Object>> jsonValue() {
Map<String, Map<String, Object>> values = new HashMap<>();
Map<String, Object> propValues = new HashMap<>();
propValues.putAll(prop);
// add each of the children.
for (TreeNodeLabel child : children) {
propValues.putAll(child.jsonValue());
}
values.put(name, propValues);
return values;
}
如果您也想反序列化,则需要添加@JsonCreator。