Примечание: Я EclipseLink JAXB (MOXy) , и член JAXB ( JSR-222 ) экспертная группа.
Проверьте привязку JSON, добавляемую в EclipseLink JAXB (MOXy). Мы используем не только аннотации JAXB, но и API-интерфейсы среды выполнения:
package blog.json.twitter;
import java.util.Date;
import javax.xml.bind.*;
import javax.xml.transform.stream.StreamSource;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(SearchResults.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
unmarshaller.setProperty("eclipselink.media.type", "application/json");
StreamSource source = new StreamSource("http://search.twitter.com/search.json?q=jaxb");
JAXBElement<SearchResults> jaxbElement = unmarshaller.unmarshal(source, SearchResults.class);
Result result = new Result();
result.setCreatedAt(new Date());
result.setFromUser("bdoughan");
result.setText("You can now use EclipseLink JAXB (MOXy) with JSON :)");
jaxbElement.getValue().getResults().add(result);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty("eclipselink.media.type", "application/json");
marshaller.marshal(jaxbElement, System.out);
}
}
В дополнение к аннотациям JAXB поддерживаются расширения MOXy (такие как @XmlPath), что делает еще проще иметь одну аннотированную модель, которую можно использовать как для XML, так и для JSON: