首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipselink MOXy eclipselink,媒体类型propertyException,设置帮助

Eclipselink MOXy eclipselink,媒体类型propertyException,设置帮助
EN

Stack Overflow用户
提问于 2013-07-13 04:30:46
回答 1查看 479关注 0票数 1

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

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

代码语言:javascript
复制
        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);

因为我显式地指定了eclipselink文件,所以我没有费心去处理jaxb.properties文件,但是我也尝试添加一个文件,但是它没有做任何事情。奇怪的是,它并没有抛出propertyNotFoundException,而只是抛出了一个普通的PropertyException。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-13 04:37:10

只要您使用的是EclipseLink 2.4.0或更新版本,您的代码就会按原样工作:

域模型(Foo)

代码语言:javascript
复制
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;
    }

}

演示

代码语言:javascript
复制
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);
    }

}

输出

代码语言:javascript
复制
{"foo":{"a":"value1","b":"value2"}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17623532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档