我已经使用JETTISON将JaxB java对象编组到Json。但是,我不能使用JETTISON将一个简单的java对象(其中没有注释)传递给Json。我知道可以通过使用GSON或MOXy或其他提供程序来做到这一点。
但是我想弄清楚“我们能用抛弃来做吗?”,如果可以的话,怎么做呢?
提前谢谢。
发布于 2013-05-15 00:23:40
不要浪费你的时间,这根本不是抛弃的目的。可以想象,用POJO实例化JSONObject并以这种方式序列化它是可能的,但是它的代码存在一些问题,使得这几乎是不可能的:
更别提它不能处理任何种类的筑巢。看看这个可爱的代码:
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,那么您可能想继续使用一个更通用的库。
发布于 2013-03-15 11:32:54
JAXB (JSR-222)是通过异常配置的,只需要在需要覆盖默认StAX表示(Jettison将XML StAX事件转换为/从JSON)时才需要注释。而不是@XmlRootElement,您可以将对象包装在JAXBElement的实例中。
https://stackoverflow.com/questions/15426641
复制相似问题