J'utilise le Jaxb qui fait partie du Jersey Jax-Rs. Lorsque je demande à JSON pour mon type de sortie, tous mes noms d'attribut commencent par un astérisque comme celui-ci,
Cet objet; p> devient ceci, P> {"ResponseDetails":{"@transactionDate":"07-12-2010",
"@statusMessage":"Successful","@returnCode":"0"}
3 Réponses :
Toutes les propriétés mappées avec @xmlattribute seront préfixées avec '@' dans JSON. Si vous souhaitez supprimer, il a simplement annoté votre propriété avec @XMLElement.
Vraisemblablement, c'est pour éviter les conflits de nom potentiels: P>
@XmlAttribute(name="foo") public String prop1; // maps to @foo in JSON @XmlElement(name="foo") public String prop2; // maps to foo in JSON
Ça ne fonctionne pas pour moi! Avec @xmlattribute code> I Obtenir @ avant les champs et avec
@xmlelement code> Je n'obtiens pas de sortie!
Si vous maîtrisez à la fois sur XML et JSON, et vous n'en avez pas besoin en tant qu'attribut dans la version XML, la suggestion d'utiliser @XMLElement est la meilleure façon d'aller.
Cependant, si elle doit être Un attribut (plutôt qu'un élément) dans la version XML, vous avez une alternative assez facile. p>
Vous pouvez facilement configurer un jsonconfiguration code> qui désactive l'insertion du "@ ". = "http://jersey.java.net/nonav/documentation/latest/json.html" rel = "nofollow"> http://jersey.java.net/nonav/documentation/latest/json.html a > p> p>
Le lien est cassé. et j'ai vérifié la dernière documentation en Jersey et il n'y a rien à propos de jsonconfiguration code> dedans!
Vous devez définir json_attribute_prefix code> dans votre
jaxbcontext code> configuration sur
"" code> qui par défaut est
"@" code> " :
properties.put(JAXBContextProperties.JSON_ATTRIBUTE_PREFIX, "");