问题标签 [jackson-databind]

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 回答
48 浏览

java - 映射休眠错误

我正在尝试映射一个休眠项目,但出现此错误:

javax.servlet.ServletException:org.glassfish.jersey.server.ContainerException:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“编程”

一级:

二等:

我不能使用属性 uptade/create 来动态创建/更新项目(我担心的企业)所以我自己创建了表:

看起来映射中存在问题,有什么想法吗?

先感谢您 !

0 投票
1 回答
3473 浏览

scala - 构建未能包含 com.fasterxml.jackson.core

我正在使用 Java 1.8 和 Scala 2.10.5 上的 scala 和 spark 包等的依赖项来构建文件。构建在 jackson-bind 包上抛出。我添加了整个 pom 和我看到的异常: 异常

中央(https://repo.maven.apache.org/maven2,releases=true,snapshots=false)

[错误]:ClientProtocolException:无效的重定向 URI: http: //blog.goodstuff.im/repo-releases/com/fasterxml/jackson/core/jackson-databind/[2.7.0,)/jackson-databind-[2.7. 0,).jar :

尝试了排除标签,它仍然失败并出现错误:

ClientProtocolException:重定向 URI 无效:http: //blog.goodstuff.im/repo-releases/com/fasterxml/jackson/core/jackson-databind/[2.7.0,)/jackson-databind-[2.7.0,)。 jar:索引 83 处路径中的非法字符:http: //blog.goodstuff.im/repo-releases/com/fasterxml/jackson/core/jackson-databind/[2.7.0,)/jackson-databind-[2.7. 0,).jar [ERROR] -> [Help 1] [ERROR] [ERROR] 要查看错误的完整堆栈跟踪,请使用 -e 开关重新运行 Maven。[错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。[ERROR] [ERROR] 有关错误和可能的解决方案的更多信息,请阅读以下文章: [ERROR] [Help 1]http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

我的 pom.xml 文件:

0 投票
0 回答
39 浏览

jackson - 如何让 JacksonXML 反序列化嵌入对象

我正在使用Jersey编写一个 REST 接口,并将其配置为使用 JacksonXML 进行 JSON<->POJO 转换。我有一组这样的类:

在我的主类中引用如下:

REST 资源当然是这样的:

序列化(POJO->JSON)工作正常。如您所料, JsonPo对象中的属性在JSON 对象中被序列化。

反过来不行。即使我将序列化的字符串反馈回来。发生的情况是obj属性始终设置为null

编辑:根据要求,以下是 JSON 字符串的样子:

我一直在查看JacksonXML Annotations以了解如何解决此问题,但我无法提出任何建议。我应该采取其他步骤吗?

更新:问题不是真的。调用了一些我没有注意到的应用程序代码正在清除对象。

0 投票
1 回答
9146 浏览

java - Direct self-reference leading to cycle (through reference chain: java.util.ArrayList[0]-

when I'm going to make a request to my api i got this erros: i try to found some question about it but not found any quaestion and answer that can aplicate in my case, i hope one of your can do that for me.

i use Spring boot aplication and angularJs in the front end .. look at my code:

my request to api:

my controller

and my class model:

0 投票
1 回答
667 浏览

spring-boot - 来自杰克逊的 NPE 试图序列化一个不存在的字段?

这是我的简单豆

当此对象在带有 Jackson 的 Spring-boot 控制器中序列化时,出现以下错误

这是我发送的 requestBody

Jackson 是否正在尝试序列化 fullName 属性?但我没有声明这样的字段。这是预期的行为吗?我找不到支持这种行为的文档。

谢谢

0 投票
0 回答
1671 浏览

java - Java:获取生成的 JSON 大小(以字节为单位)的快速方法

我有一些 JSON 数据,InputStream我需要将其拆分为不大于 5MB 的部分并分别上传。我有一个可行的解决方案(如下)来执行此操作,但是当我遍历 JSON 节点时,获取生成的 JSON 的大小需要的时间越来越长。

我尝试获取每个节点的大小并将其添加到全局“总”变量(这非常快),但这并没有考虑将在最终生成的 JSON 中分隔所有节点的逗号。 想法:如果我这样做直到阈值,然后删除节点,直到最终生成的所有逗号的 JSON 都低于阈值,该怎么办?

我正在使用杰克逊罐子,不想只为这件小事使用其他任何东西。

这是输入数据的格式:

这是我的工作 Java 代码:

0 投票
1 回答
157 浏览

java - 杰克逊:无法识别的属性异常

我有以下课程:

LocationCustomDataItem.java

LocationCustomDataAttributes.java

这个测试json:

我正在尝试使用 ObjectMapper 将 json 转换为对象,但它在“locationCustomDataAttributes”周围抛出了 unrecognizedPropertyException:

MapperTest.java

错误信息:

//等等...`

我没有直接与 Jackson 合作的大量经验,所以我还没有对类本身进行注释,但是从之前的努力(例如使用 Spring 控制器),转换会自动发生,而不需要对类进行注释。在这种看起来不像的情况下,我在课堂上遗漏了什么,或者当前的课堂结构是否因某种原因不适合杰克逊的自动转换?

0 投票
1 回答
278 浏览

java - 安全地忽略包含所有其他对象的 JSON 属性

我正在使用 Spring Boot,并正在使用 Jackson 解析 JSON 文件。文件看起来像这样

当我用杰克逊的 ObjectMapper 解析它时,它会抛出一个错误,说我没有使用 @JsonProperty 定义“分组”。问题是我不关心这个初始标题,但如果我忽略它(使用@JsonIgnoreProperties("grouping"),那么其余数据将被跳过,我目前最终得到一个包含默认构造函数值的对象.

我需要创建一个丢弃变量还是需要重组我的对象/类?

0 投票
1 回答
179 浏览

java - 将具有统一映射的数据结构序列化为 CSV

我必须序列化与此类似的对象:

领域namedescription国际化。键是区域设置标识符(“fr”、“en-US”、“en-UK”、“de”、...),值是该区域设置的相应值。

预期 CSV 的标题行必须如下所示:

如果为简洁起见省略了其他语言。

@JsonUnwrapped似乎没有帮助,因为它会为所有属性生成相同的键“fr”,“en-US”,...。

杰克逊开箱即用有什么方法可以实现这一目标?硬编码支持的语言环境标识符列表是可以接受的。

前面还有更多的恶作剧。另一个要序列化的类如下所示:

每个SomethingElse都有“颜色”、“味道”、...在每种语言“fr”、“en-US”、“en-UK”、“de”...中的特征值像这样:

区域设置标识符列表在所有用例中都是相同的。

一种可能的方法是先序列化为 JSON,然后“扁平化”该 JSON,以便可以轻松地将其序列化为 CSV。“扁平化”是指转换:

进入:

换句话说:每个叶子值的键将成为原始数据结构中访问它所需的 JavaScript 代码。有没有可以进行这种转换的库方法?

0 投票
2 回答
3310 浏览

spring - 在 Spring 环境中配置一个 Jackson 的 DeserializationProblemHandler

据我了解,Spring 已经为 Jackson 提供了一个 bean ObjectMapper。因此,我没有创建一个新的 bean,而是尝试自定义这个 bean。

从这篇文,然后是这个Github 项目,我使用Jackson2ObjectMapperBuilderbean 来实现这种定制。

然后,我试图自定义反序列化器以使其宽松:如果在反序列化属性时引发异常,我希望结果对象的属性是null并让反序列化继续(默认是在第一个属性上失败)反序列化)。

我已经能够通过NullableFieldsDeserializationProblemHandler扩展的类来实现这一点DeserializationProblemHandler(我认为代码不相关,但如果需要,我可以分享它)。

注册此处理程序的最简单方法是.addHandler()使用ObjectMapper. 但是当然,这样做,我需要在每次注入和使用ObjectMapper. 我希望能够配置处理程序,以便每次ObjectMapper自动连接时,处理程序已经存在。

到目前为止,我想出的最佳解决方案是@PostConstruct仅使用注释来注册问题处理程序。

但是这个解决方案的问题是,我似乎仍然可以访问ObjectMapper尚未注册问题处理程序的自动装配(当我在调试模式下需要它时,我可以看到它发生了)。

知道我应该如何注册这个处理程序吗?我注意到Jackson2ObjectMapperBuilder有一个.handlerInstantiator(),但我不知道如何使用它。

注意我也尝试过Jackson2ObjectMapperBuilderCustomizer,因为我使用的是 Spring Boot,但没有更好的结果。