问题标签 [jackson2]

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 投票
0 回答
218 浏览

java - Fasterxml Jackson 将 json 转换为 java pojo

我的应用程序正在使用产生 JSON 响应的第三方 API。我已将相关的 pojo 类映射到相应的 JSON 响应。但是我很难映射具有属性“消息”的特定响应,该属性有时是字符串,有时是对象。

对于同一 API 调用的特定请求,属性“消息”的数据类型会发生变化。我不想使用 JSONObject 或 JSONArray 解析 JSON 字符串,而是想将此响应映射到 pojo 类。

有人可以帮我吗?谢谢!

回应 1

回应 2

我要求 API 提供者改变这种行为,但他/她拒绝了我的请求,说他无法控制 json 响应中产生的内容。

0 投票
1 回答
46 浏览

jackson - 使用 Jackson Provider 时收到不想要的 JSON 响应

我目前面临一个问题,即调用我的 Web 服务的响应是使用 Jersey 2 框架实现的。

在响应的格式之下,我得到了。

…………

预期格式

即将被删除

--- 类型元数据信息添加和删除实体包装到我的实际对象。

感谢您提出任何建议。

0 投票
1 回答
1125 浏览

java - 使用注释的杰克逊多态反序列化

假设我们有以下类型:

有了它CatDog具有不同的属性,我们如何根据始终存在于 json 中Zoo的字符串将对象反序列化为适当的 Animal 子类型?animalType我知道如何做到这一点,custom deserialization但我找不到使用Jackson annotations. 如果animalType财产位于,Cat或者Dog但在我的情况下,它的位置在Zoo.

任何的想法 ?

0 投票
1 回答
10559 浏览

java - 将 JsonCreator 与 JsonProperty.Access.READ_ONLY 一起使用时出现 InvalidDefinitionException

尝试与一起使用时出现InvalidDefinitionException@JsonCreator@JsonProperty(value = "version", access = JsonProperty.Access.READ_ONLY)

这就是我的班级的样子:

它抛出以下异常:

我的环境详细信息:我正在使用Spring Boot 2.0.0.M2版本和Jackson 2.9.0.pr3.

我的意图是在反序列化期间省略field2

我尝试在field2@JsonIgnore的 setter 方法中使用作为替代方法。甚至,它不适用于.@JsonCreator

0 投票
0 回答
460 浏览

json - 杰克逊 2 对象到 json 忽略延迟加载

我正在使用 jackson 2 将对象解析为 json 格式我在解析延迟加载字段时遇到问题。如果无法加载对象,我想获得一个空引用。

我怎样才能做到这一点?

我想和你讨论一个解决方案,我想知道我使用它时是否有问题?

我发现在解析杰克逊的过程中使用getter方法来获取属性所以我的解决方案是修改延迟加载字段的getter方法假设post是一个延迟加载的字段这是该字段的getter

该解决方案运行良好,但我不知道它是否会导致将来出现问题。我们还应该使用 @JsonInclude(JsonInclude.Include.NON_NULL) 来忽略空字段。

0 投票
1 回答
1392 浏览

java - 警告 RESTEASY002145:NoClassDefFoundError

我正在努力解决以下错误

我已经清理了我的 pom 并尝试删除尽可能多的冲突,还添加到依赖项下面,但是这个错误仍然存​​在

我有点卡在哪里看得更远。任何指针将不胜感激。

0 投票
2 回答
266 浏览

java - jackson 为一个 java 属性制作两个 json 属性

在休息 api 中使用杰克逊时,我遇到了一点舒适问题。我正在使用 jackson 序列化在 java.time 中具有任何类型属性的对象,例如:

我可以使用杰克逊来制作这样的东西:

我可以用它来产生这样的东西:

但我想同时拥有 JS 中的毫秒数和纯粹使用 rest-api 而没有 js-frontend 的用户的字符串表示。(主要是我,用于调试)

那么有什么办法可以让杰克逊产生以下内容?

0 投票
1 回答
3330 浏览

java - 将嵌套 json 转换为点表示法 json

我有一个服务,从那里我得到一个 json 字符串响应,如下所示

我使用 HttpClient 使用其余调用并将 json 字符串转换Map<String, String>为如下所示。

从 json 字符串到的转换HashMap工作正常,但实际上我的要求是有时在主 json 中可以有一些嵌套的 json,例如在下面的 json 中,我有一个额外的address键,它又是一个嵌套的 json 具有citytown详细信息。

如果有任何嵌套的 json,我需要使 json 如下所示

目前我正在使用杰克逊库,但开放给任何其他库,这将给我这个功能开箱即用

任何人都可以通过对此提出一些建议来帮助我。

0 投票
0 回答
193 浏览

java - 使用请求范围 bean 的运行时更改 json 属性命名策略

我想从请求标头驱动 JSON 命名策略。根据请求标头中的值,我想设置这个策略,同样应该对 JSON 序列化和反序列化有效。

例如..

- If header is "Snake" , request will be {"first_name":"james"}

- If header is "Camel" , request will be {"firstName":"james"}

同样,响应将针对给定的命名策略进行序列化。

我想要像请求范围 bean 这样的东西,我可以在其中处理这个策略。

但是有了上面的定义,我得到了这个错误

bean初始化失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“_halObjectMapper”的 bean 时出错:bean 初始化失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名称为“objectMapperBuilder”的 bean 时出错:范围“请求”对于当前线程无效;如果您打算从单例中引用它,请考虑为该 bean 定义一个作用域代理;嵌套异常是 java.lang.IllegalStateException:未找到线程绑定请求:您是指实际 Web 请求之外的请求属性,还是在原始接收线程之外处理请求?如果您实际上是在 Web 请求中操作并且仍然收到此消息,

然后我想创建另一个bean,如下所示。但是在定义了下面的bean之后,请求没有到达上面定义的bean。

任何人都可以提出任何解决方案。提前致谢。

0 投票
1 回答
582 浏览

java - 杰克逊流解析器位置

我正在构建一个工具来解析大约 1GB 的巨大 JSON。在这种逻辑中,我正在创建JsonParser对象一直阅读,直到达到预期JsonToken。现在我创建另一个JsonParser(称为子级),它应该从以前的 JsonParser 令牌位置开始,没有太多开销。有没有办法在 JasonParser API 中做到这一点?我正在使用skipChildren(),这在我的场景中也需要时间。