首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JETTISON将POJO配置为JSON?

如何使用JETTISON将POJO配置为JSON?
EN

Stack Overflow用户
提问于 2013-03-15 07:06:49
回答 2查看 5.1K关注 0票数 2

我已经使用JETTISON将JaxB java对象编组到Json。但是,我不能使用JETTISON将一个简单的java对象(其中没有注释)传递给Json。我知道可以通过使用GSON或MOXy或其他提供程序来做到这一点。

但是我想弄清楚“我们能用抛弃来做吗?”,如果可以的话,怎么做呢?

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-05-15 00:23:40

不要浪费你的时间,这根本不是抛弃的目的。可以想象,用POJO实例化JSONObject并以这种方式序列化它是可能的,但是它的代码存在一些问题,使得这几乎是不可能的:

  1. 它需要传入将包含在JSON中的字段的名称。
  2. 它只能处理所提供对象的公共属性。

更别提它不能处理任何种类的筑巢。看看这个可爱的代码:

代码语言:javascript
复制
Class c = object.getClass();
for (int i = 0; i < names.length; i += 1) {
        try {
                String name = names[i];
                Field field = c.getField(name);
                Object value = field.get(object);
                this.put(name, value);
        } catch (Exception e) {
                /* forget about it */
        }
}

是的,这是构造函数JSONObject(Object, String[])中的代码。我相信您会看到它的问题(对一般对象的原始访问,只能访问公共字段,草率的异常处理)。总之-非常糟糕的“序列化”代码。

我知道这可能不是您想要听到的,但是如果您想将常规Java对象转换为JSON,那么您可能想继续使用一个更通用的库。

票数 2
EN

Stack Overflow用户

发布于 2013-03-15 11:32:54

JAXB (JSR-222)是通过异常配置的,只需要在需要覆盖默认StAX表示(Jettison将XML StAX事件转换为/从JSON)时才需要注释。而不是@XmlRootElement,您可以将对象包装在JAXBElement的实例中。

  • http://blog.bdoughan.com/2012/07/jaxb-no-annotations-required.html
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15426641

复制
相关文章

相似问题

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