问题标签 [jackson]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
10536 浏览

java - 春天的正确版本或杰克逊是什么?

我正在使用杰克逊转换器(MappingJacksonHttpMessageConverter)从弹簧控制器消费和产生 json 数据。但是在调用控制器时会引发以下异常。

我的代码:

弹簧豆文件:

abc.CartType abc.CartResponseType

pom 文件(仅限片段)

我可以在 spring-web pom 文件中看到 jackson 版本被提到为 1.4.2 和我使用过的相同,它仍然抛出关于找不到方法的异常。我使用正确的版本吗?

0 投票
1 回答
1557 浏览

java - 基于变量在杰克逊 JSON 中使用不同的 bean 类?

我有如下 JSON:

基本上是具有相同变量的对象列表。在我的代码中,我想创建一个 A 类的 ArrayList,其中包含这些对象。但是,我希望每个对象都属于一或二子类,具体取决于“种类”值。

我怎样才能做到这一点?

谢谢!

0 投票
3 回答
5133 浏览

java - 如何完全匹配来自 cxf 的 json 输出?

编辑:我很困惑——使用的是 cxf,而不是球衣。有没有办法将带注释的对象转换为类似于杰克逊的 ObjectMapper 的 json?

原味精:

您好,我们目前正在使用 jaxrs 将我们的 Web 响应转换为 xml/json。然而,我现在想做的是使用 ObjectMapper(?) 在我的代码中生成一个等效的 json 字符串。

例如,给定一个控制器和带有 jaxb 注释的返回对象:

点击http://myserver/.../foo.json会输出一些漂亮的 json:

现在我希望能够在内部生成确切的 json:

但是,这似乎根本不起作用。大多数带注释的属性和元素都丢失了,属性没有像 jaxrs 输出那样以“@”为前缀,等等。

我错过了一些简单的东西吗?jaxrs 本身如何将带注释的对象转换为 json 字符串?

谢谢!乔

0 投票
1 回答
2951 浏览

java - 将 Jackson 与 Jersey 一起使用时,JsonTypeInfo 不序列化

我用 JsonTypeInfo 注释了一个 JAXB 类,以便我可以轻松地序列化多态类。但是,由 Jersey 序列化时不会显示注释。更具体地说,它在使用 ObjectMapper 时出现,但不是作为资源的返回类型。我现在很困惑,因为这似乎是 Jersey => Jackson 交互的问题。

为了调试,我使用了 jersey-samples 中的 jsonfromjaxb 示例来定位我的问题。我在 Flight 类中添加了以下内容,以使其序列化到 @class。

我在资源中有以下可用方法,一种仅返回 JAXB 对象,另一种手动使用 ObjectMapper

查询 /jsonfromjaxb/flights 的结果

查询 /jsonfromjaxb/flights/object_mapper 的结果

谢谢,赎金

0 投票
2 回答
3694 浏览

android - 使用 Jackson JSON 处理器而不使用注释

我有一个包,它只包含 xsd 文件来生成(通过 JAXB)与我们的服务器和客户端应用程序相关的共享类。所以这些类包含 XML 注释。

一个客户端是 Android 应用程序。我还想在此处使用这些类进行 JSON 反序列化,因为我与提供 JSON(使用 Jersey/ Jackson)的 REST 服务进行通信。

我尝试在 Android 上使用Jackson(1.7.2 版),如下所示:

我虽然配置 MAPPER 应该避免使用注释,但我仍然得到

谁知道阻止杰克逊解析注释的诀窍。

谢谢克劳斯

0 投票
2 回答
828 浏览

jquery - 无法从带注释的控制器获取自动格式化的 json 数据

据我了解,如果您使用的是 mvc:annotation-driven 标记,那么您可以传回 JSON 格式的对象,前提是相关的 jackson jar 文件存在于类路径中。情况就是这样。

但是,我从服务器收到 406(不可接受)响应。

这是带注释的控制器的相关部分:

这是客户端页面上的jquery代码:

我尝试放置在类路径中的杰克逊罐子是:

jackson-core-asl-1.7.2.jar 和 jackson-mapper-asl-1.7.2.jar

我也试过

jackson-all-1.7.2.jar

仍然得到可怕的406 ..

DateResponse 对象是否需要显式注释才能将其转换为 JSON?我会认为使用现有的字段名称将是默认行为。

我认为最令人沮丧的是,我看不到任何后端异常,所以我正在尝试和错误。

编辑:这是http标头

这是 dispatcher-servlet.xml 文件:

EDIT2:这是 catalina.out

这是同一时期的本地主机日志:

0 投票
2 回答
1680 浏览

java - 杰克逊 JSON 处理器问题

我已经为此挠头好几个小时了:

Jsckson 反序列化B但炸弹在C下面:

BC都是 的子类A,因此有一个 setter getName。请注意,大写NName故意的,这就是我的 JSON 的外观。反序列化C抱怨 Unrecognized field name Name,因为B没关系。

版本 1.7.2





0 投票
1 回答
482 浏览

json - 获取数组列表或类

我尝试将应用程序连接到外部服务,该服务为我提供了一个类似的数组

或者在出现错误的情况下

有没有办法将其定义为单个类或识别流是哪个对象?


更新 1:我已经通过在循环中运行 100 次并计算平均执行时间来测试多个版本。在所有不同的版本中,我都使用了杰克逊。


这是性能的基线。它不能满足业务需求,因为代码没有区分数组和对象。

照片:平均 100 次处决。持续时间:923ms


使用解析器会使性能降低大约 min。50%

照片:平均 100 次处决。持续时间:1585ms


将 InputStream 转换为 String 并保留 objectMapper.readValue 解决方案会导致:

照片:平均 100 次处决。持续时间:1191ms


更新结束 1


0 投票
2 回答
887 浏览

java - Jackson:字段序列化格式取决于其他字段值

我有以下 Java 类,我想使用 Jackson 将其序列化为 JSON:

但是我想在 allDay 为真时将日期格式化为“yyyy-MM-dd”,当 allDay 为假时将日期格式化为“yyyy-MM-dd HH:mm”。那可能吗?

0 投票
6 回答
72122 浏览

java - 杰克逊 + 建设者模式?

我希望杰克逊使用以下构造函数反序列化一个类:

反序列化第一个参数很容易。问题是地址被定义为:

并且是这样构造的:new Address.Builder().setCity("foo").setCountry("bar").create();

有没有办法从杰克逊那里获取键值对以便自己构建地址?或者,有没有办法让杰克逊使用 Builder 类本身?