【问题标题】:Eclipselink MOXy eclipselink,media type propertyException, help on setupEclipselink MOXy eclipselink,媒体类型 propertyException,设置帮助
【发布时间】:2013-07-12 20:30:46
【问题描述】:

我正在尝试对 eclipselink 的 JSON 到 JAXB 对象功能进行简单测试。 我最初计划使用 moxy 生成 json,然后再次使用它来编组对象,但是尝试设置 eclipselink.media-type 和 eclipselink.json.include-root 属性都抛出了 PropertyException。 我确定是因为我设置了错误。

这是我的主要方法: (我有一个包 moxyTest,有一个 Foo 类,它有两个字符串值)

        JAXBContext jc = org.eclipse.persistence.jaxb.JAXBContextFactory
                .createContext(new Class[] { moxyTest.Foo.class }, null);
        Marshaller marsh = jc.createMarshaller();
        Foo firstObject = new Foo("value1", "value2");
        marsh.setProperty("eclipselink.media-type", "application/json");
        marsh.marshal(firstObject, System.out);

我没有打扰 jaxb.properties 文件,因为我明确指定了 eclipselink 之一,但我也尝试添加一个,但它没有做任何事情。 奇怪的是它没有抛出 propertyNotFoundException,而只是一个普通的 PropertyException。

话虽如此,顺便说一句,我知道 moxy 有 object->xml 和 object-> json,有没有直接 json->xml 或反之亦然的快速方法?

【问题讨论】:

    标签: eclipselink moxy


    【解决方案1】:

    只要您使用 EclipseLink 2.4.0 或更新版本,您的代码就可以按原样运行:

    领域模型(Foo)

    package moxyTest;
    
    import javax.xml.bind.annotation.*;
    
    @XmlRootElement
    @XmlAccessorType(XmlAccessType.FIELD)
    public class Foo {
    
        private String a;
        private String b;
    
        public Foo() {
        }
    
        public Foo(String a, String b) {
            this.a = a;
            this.b = b;
        }
    
    }
    

    演示

    package moxyTest;
    
    import javax.xml.bind.*;
    
    public class Demo {
    
        public static void main(String[] args) throws Exception {
            JAXBContext jc = org.eclipse.persistence.jaxb.JAXBContextFactory
                    .createContext(new Class[] { moxyTest.Foo.class }, null);
            Marshaller marsh = jc.createMarshaller();
            Foo firstObject = new Foo("value1", "value2");
            marsh.setProperty("eclipselink.media-type", "application/json");
            marsh.marshal(firstObject, System.out);
        }
    
    }
    

    输出

    {"foo":{"a":"value1","b":"value2"}}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 2012-01-14
      • 2014-12-23
      • 1970-01-01
      相关资源
      最近更新 更多