かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

JAXBでJSON出力したい

  • eclipselinkの2.4.0を入れる
  • jsonに出力したいクラスのあるパッケージにjaxb.propertiesを置く
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
  • JAXBContextを生成するときにJAXBContextProperties.MEDIA_TYPEにapplication/jsonを設定する
    • JAXBContextPropertiesはeclipselinkにあるクラスなので注意
Map<String, String> properties = new HashMap<>();
properties.put(JAXBContextProperties.MEDIA_TYPE, "application/json");
JAXBContext ctx = JAXBContext.newInstance(new Class<?>[] { clazz }, properties);


これでmarshal, unmarshalするとjsonになる!