问题标签 [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 投票
2 回答
423 浏览

json - Spring - Hibernate Jackson 映射

一方面,我有两个实体建立多对多关系

类别.java:

在另一边Article.java:

加上吸气剂和二传手..

当我在浏览器中加载时出现异常:

有没有人可以帮助我解决这个问题?

我应该编写自己的序列化程序吗?

谢谢和问候!

0 投票
0 回答
125 浏览

jackson - Jackson ObjectMapper - JSON 值中的 XML

我有一些 JSON 由我无法控制的系统提供,其中包括一些 JSON 值中的 XML(在不可预测的位置)。

例子:

我正在使用 Jackson 将其解析为 JsonNode,然后使用 Jackson XMLMapper 将其写为 XML,但是此时所有 < 字符都变为 < 我的 XML 块只是字符串。

我想,在与 Jackson 解析并使用 XMLMapper 再次写回 XML 后,最终得到如下输出:

我并不完全反对遍历整个树并寻找有效的 XML 子元素,但鉴于 JsonNode 是不可变的,我不确定我是否能找到一种方法。此外,我应该对真正使用 < 符号(即,不是有效 XML 的 JSON 值)稍加防范。

关于我如何做到这一点的任何想法?

0 投票
1 回答
966 浏览

java - Jackson 反序列化为 JsonNode 是否保证属性排序?

例如,如果我将以下 JSON 反序列化为 JsonNode:

然后使用JsonNode#fields遍历元素,是否可以保证迭代器将按照定义的顺序返回属性(即property1、property2、property3)?

直觉上我会假设答案是否定的,因为 JSON 规范将对象定义为“一组无序的名称/值对”。然而,JSON RFC (RFC 7159)这么说:

观察到 JSON 解析库在它们是否使对象成员的顺序对调用软件可见方面存在差异。

而且我还没有找到任何关于杰克逊如何处理这个问题的信息。

0 投票
1 回答
382 浏览

json - 在 Spring Rest 的 @ResponseBody 带注释的控制器方法中,何时需要使用 Jackson 的 ObjectMapper 手动映射将 pojo 转换为 json?

我想知道 MappingJackson2HttpMessageConverter 将对象(从由注释的控制器方法返回@ResponseBody)转换为 json 所遵循的规则是什么?在某些情况下,我发现只在类路径(pom.xml)上有 Jackson2 就足够了,控制器只需将其对象(例如字符串)或集合(例如List<Employee>成功地以 json 格式返回到浏览器)返回。但是,在其他情况下,我看到该解决方案要求我使用ObjectMapperand use 方法writeValueAsString来获取字符串并将其作为响应返回,例如HashMaps! MappingJackson2HttpMessageConverter 是否有一些隐含的规则来决定它是否能够自己进行转换,或者我需要使用手动进行转换Objectmapper?如果我有一个 pojo 对象,它内部很少String字段,我还需要使用 ObjectMapper 等吗?如果不是,那么如果我的 pojo 类有诸如 someList<CustomObject>和 some HashMaps 之类的字段,我是否需要它?例如:示例 1List<Company>在控制器方法中不使用任何 ObjectMapper 转换为 json。但是,示例 2需要一个ObjectMapperand writeValueAsString?另外,它的返回类型现在是String而不是HashMap

0 投票
1 回答
28 浏览

jackson2 - How to use Jackson to deserialise list in java?

My Java Class is

Let's assume it has getter, setter method.

json is

I tried to deserialize it like below.

But it throws error.

How to deserialize it?

0 投票
1 回答
1260 浏览

java-ee-7 - WELD-001408:带有限定符 @Default 的 ObjectMapper 类型的依赖关系不满足

我尝试使用 fastXML jackson 注入 ObjectMapper,如下所示:

但是当我尝试部署war文件时出现下一个错误:

org.jboss.weld.exceptions.DeploymentException: WELD-001408:带有限定符 @Default的类型ObjectMapper的依赖关系不满足

这是我的依赖项:

我做错了什么?

0 投票
0 回答
1137 浏览

jackson - Jackson - 使用 JsonView 反序列化

我试图限制使用 Jackson JSONViews 对 JSON 对象的哪些属性进行反序列化。目的是使用它来防止我的 API 的使用者提交他们不应该提交的数据。

问题是,我要么误解了 JSONViews,要么做错了什么。见下文。

我在 Spring 开始尝试这样做,但注意到即使下面的简单测试也不起作用。

账户类

意见

测试

不幸的是,第二个断言失败了,因为 Users 里面有一个用户对象。

基本上,即使“用户”是 Account 的属性,我也不希望该值被反序列化,因为我使用了 JSONView (AccountViews.Public.class)。但是,无论我尝试什么,它似乎总是被反序列化并出现在帐户对象上。

非常感谢任何帮助。

错误

0 投票
1 回答
1723 浏览

java - Jackson blob exception

I am trying to save image to database, but I get error:

Pojo class:

Implementation class:

Looked online for similar posts but couldn't find any leads. How do I fix this? It says abstract types can only be instantiated with additional type information. What is the additional info I have to passed here?

0 投票
0 回答
2900 浏览

java - JsonGenerationException:无法写入字段名称

我的问题在于杰克逊 FasterXML 库中实现的 JsonSerialization 领域。我有一系列端点,通过这些端点在后端和 MVVM 前端框架之间交换内容。这是有效的,但现在我有点卡住了,因为我要处理用户创建/注册。

这是代表我的应用程序中的组的模型(实体)(我省略了不相关的导入声明和 JPA 注释):

这是端点中的方法,它检索(如果存在)并将组的序列化版本返回给 JavaScript 客户端:

}

尝试像这样测试此代码:

...残酷地失败了:

不过,在这种情况下,堆栈跟踪的帮助为 0 - 这就是我粘贴捕获底层 Json 异常的日志输出的原因:

在访问并分析了 13 个类似的投诉链接(其中 3 个来自 stackoverflow)后,我想出了一个解决方案,它更像是一种解决方法——如果你回顾一下实体,我已经评论了@JsonValue。如果我取消注释并注释,@JsonGetter("group_Name")则测试通过,输出如下:

这只是一种解决方法,我决定再次寻求帮助,我希望有人能够并且足够友善地提供。

0 投票
1 回答
398 浏览

java - Jackson:在反序列化时设置不是来自 JSON 的类/对象属性

我有以下 POJO:

这是我的 JSON:

id从代码中的其他地方获取值。

我想以id某种方式将我的外部值与 JSON 结合起来,因此杰克逊可以构建一个POJO包含这两个值的实例。

这是一些示例代码:

我怎样才能告诉杰克逊设置id值?


我已经知道我可以使用om.readTree(json)然后将其转换为ObjectNode然后put("id", id)然后创建一个om.readerFor(POJO.class)并调用readValue(objectNode). 但我猜杰克逊现在会做两次它的工作。

有没有其他方法可以简单地注入一些外部属性?