问题标签 [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.
java - Fasterxml Jackson 将 json 转换为 java pojo
我的应用程序正在使用产生 JSON 响应的第三方 API。我已将相关的 pojo 类映射到相应的 JSON 响应。但是我很难映射具有属性“消息”的特定响应,该属性有时是字符串,有时是对象。
对于同一 API 调用的特定请求,属性“消息”的数据类型会发生变化。我不想使用 JSONObject 或 JSONArray 解析 JSON 字符串,而是想将此响应映射到 pojo 类。
有人可以帮我吗?谢谢!
回应 1
回应 2
我要求 API 提供者改变这种行为,但他/她拒绝了我的请求,说他无法控制 json 响应中产生的内容。
jackson - 使用 Jackson Provider 时收到不想要的 JSON 响应
我目前面临一个问题,即调用我的 Web 服务的响应是使用 Jersey 2 框架实现的。
在响应的格式之下,我得到了。
…………
预期格式
即将被删除
--- 类型元数据信息添加和删除实体包装到我的实际对象。
感谢您提出任何建议。
java - 使用注释的杰克逊多态反序列化
假设我们有以下类型:
有了它Cat
并Dog
具有不同的属性,我们如何根据始终存在于 json 中Zoo
的字符串将对象反序列化为适当的 Animal 子类型?animalType
我知道如何做到这一点,custom deserialization
但我找不到使用Jackson annotations
. 如果animalType
财产位于,Cat
或者Dog
但在我的情况下,它的位置在Zoo
.
任何的想法 ?
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
json - 杰克逊 2 对象到 json 忽略延迟加载
我正在使用 jackson 2 将对象解析为 json 格式我在解析延迟加载字段时遇到问题。如果无法加载对象,我想获得一个空引用。
我怎样才能做到这一点?
我想和你讨论一个解决方案,我想知道我使用它时是否有问题?
我发现在解析杰克逊的过程中使用getter方法来获取属性所以我的解决方案是修改延迟加载字段的getter方法假设post是一个延迟加载的字段这是该字段的getter
该解决方案运行良好,但我不知道它是否会导致将来出现问题。我们还应该使用 @JsonInclude(JsonInclude.Include.NON_NULL) 来忽略空字段。
java - 警告 RESTEASY002145:NoClassDefFoundError
我正在努力解决以下错误
我已经清理了我的 pom 并尝试删除尽可能多的冲突,还添加到依赖项下面,但是这个错误仍然存在
我有点卡在哪里看得更远。任何指针将不胜感激。
java - jackson 为一个 java 属性制作两个 json 属性
在休息 api 中使用杰克逊时,我遇到了一点舒适问题。我正在使用 jackson 序列化在 java.time 中具有任何类型属性的对象,例如:
我可以使用杰克逊来制作这样的东西:
我可以用它来产生这样的东西:
但我想同时拥有 JS 中的毫秒数和纯粹使用 rest-api 而没有 js-frontend 的用户的字符串表示。(主要是我,用于调试)
那么有什么办法可以让杰克逊产生以下内容?
java - 将嵌套 json 转换为点表示法 json
我有一个服务,从那里我得到一个 json 字符串响应,如下所示
我使用 HttpClient 使用其余调用并将 json 字符串转换Map<String, String>
为如下所示。
从 json 字符串到的转换HashMap
工作正常,但实际上我的要求是有时在主 json 中可以有一些嵌套的 json,例如在下面的 json 中,我有一个额外的address
键,它又是一个嵌套的 json 具有city
和town
详细信息。
如果有任何嵌套的 json,我需要使 json 如下所示
目前我正在使用杰克逊库,但开放给任何其他库,这将给我这个功能开箱即用
任何人都可以通过对此提出一些建议来帮助我。
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。
任何人都可以提出任何解决方案。提前致谢。
java - 杰克逊流解析器位置
我正在构建一个工具来解析大约 1GB 的巨大 JSON。在这种逻辑中,我正在创建JsonParser
对象一直阅读,直到达到预期JsonToken
。现在我创建另一个JsonParser
(称为子级),它应该从以前的 JsonParser 令牌位置开始,没有太多开销。有没有办法在 JasonParser API 中做到这一点?我正在使用skipChildren()
,这在我的场景中也需要时间。