Я использую JAXB, который является частью JAX-RS Джерси. Когда я запрашиваю JSON на свой выходной тип, все мои названия атрибута запускаются со звездочки как это,
Этот объект;
package com.ups.crd.data.objects;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
@XmlType
public class ResponseDetails {
@XmlAttribute public String ReturnCode = "";
@XmlAttribute public String StatusMessage = "";
@XmlAttribute public String TransactionDate ="";
}
становится этим,
{"ResponseDetails":{"@transactionDate":"07-12-2010",
"@statusMessage":"Successful","@returnCode":"0"}
Так, почему там на имя?
Любые свойства, сопоставленные с @XmlAttribute, будут иметь префикс '@' в JSON. Если вы хотите убрать его, просто аннотируйте ваше свойство с @XmlElement.
Предположительно это сделано для того, чтобы избежать потенциальных конфликтов имен:
@XmlAttribute(name="foo") public String prop1; // maps to @foo in JSON
@XmlElement(name="foo") public String prop2; // maps to foo in JSON