gpt4 book ai didi

java - 如何使用 JETTISON 将 POJO 编码为 JSON?

转载 作者:行者123 更新时间:2023-11-30 09:25:09 54 4
gpt4 key购买 nike

我已经使用 JETTISON 将 JaxB java 对象编码为 Json。但是我无法使用 JETTISON 将一个简单的 java 对象(其中没有注释)编码到 Json。我知道可以通过使用 GSON 或 MOXy 或其他一些提供商来实现。

但我想弄清楚“我们可以使用 JETTISON 做到这一点吗?”。如果可以,该怎么做?

提前致谢。

最佳答案

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

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

更不用说它不能处理任何类型的嵌套。看看这个可爱的代码:

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[]) 中的代码。我相信您会看到它的问题(对通用对象的原始访问,只能访问公共(public)字段,草率的异常处理)。总而言之 - 非常糟糕的“序列化”代码。

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

关于java - 如何使用 JETTISON 将 POJO 编码为 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15426641/

54 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com