问题标签 [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.
java - 映射休眠错误
我正在尝试映射一个休眠项目,但出现此错误:
javax.servlet.ServletException:org.glassfish.jersey.server.ContainerException:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“编程”
一级:
二等:
我不能使用属性 uptade/create 来动态创建/更新项目(我担心的企业)所以我自己创建了表:
看起来映射中存在问题,有什么想法吗?
先感谢您 !
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 文件:
jackson - 如何让 JacksonXML 反序列化嵌入对象
我正在使用Jersey编写一个 REST 接口,并将其配置为使用 JacksonXML 进行 JSON<->POJO 转换。我有一组这样的类:
在我的主类中引用如下:
REST 资源当然是这样的:
序列化(POJO->JSON)工作正常。如您所料, JsonPo对象中的属性在JSON 对象中被序列化。
反过来不行。即使我将序列化的字符串反馈回来。发生的情况是obj属性始终设置为null。
编辑:根据要求,以下是 JSON 字符串的样子:
我一直在查看JacksonXML Annotations以了解如何解决此问题,但我无法提出任何建议。我应该采取其他步骤吗?
更新:问题不是真的。调用了一些我没有注意到的应用程序代码正在清除对象。
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:
spring-boot - 来自杰克逊的 NPE 试图序列化一个不存在的字段?
这是我的简单豆
当此对象在带有 Jackson 的 Spring-boot 控制器中序列化时,出现以下错误
这是我发送的 requestBody
Jackson 是否正在尝试序列化 fullName 属性?但我没有声明这样的字段。这是预期的行为吗?我找不到支持这种行为的文档。
谢谢
java - Java:获取生成的 JSON 大小(以字节为单位)的快速方法
我有一些 JSON 数据,InputStream
我需要将其拆分为不大于 5MB 的部分并分别上传。我有一个可行的解决方案(如下)来执行此操作,但是当我遍历 JSON 节点时,获取生成的 JSON 的大小需要的时间越来越长。
我尝试获取每个节点的大小并将其添加到全局“总”变量(这非常快),但这并没有考虑将在最终生成的 JSON 中分隔所有节点的逗号。 想法:如果我这样做直到阈值,然后删除节点,直到最终生成的所有逗号的 JSON 都低于阈值,该怎么办?
我正在使用杰克逊罐子,不想只为这件小事使用其他任何东西。
这是输入数据的格式:
这是我的工作 Java 代码:
java - 杰克逊:无法识别的属性异常
我有以下课程:
LocationCustomDataItem.java
LocationCustomDataAttributes.java
这个测试json:
我正在尝试使用 ObjectMapper 将 json 转换为对象,但它在“locationCustomDataAttributes”周围抛出了 unrecognizedPropertyException:
MapperTest.java
错误信息:
//等等...`
我没有直接与 Jackson 合作的大量经验,所以我还没有对类本身进行注释,但是从之前的努力(例如使用 Spring 控制器),转换会自动发生,而不需要对类进行注释。在这种看起来不像的情况下,我在课堂上遗漏了什么,或者当前的课堂结构是否因某种原因不适合杰克逊的自动转换?
java - 安全地忽略包含所有其他对象的 JSON 属性
我正在使用 Spring Boot,并正在使用 Jackson 解析 JSON 文件。文件看起来像这样
当我用杰克逊的 ObjectMapper 解析它时,它会抛出一个错误,说我没有使用 @JsonProperty 定义“分组”。问题是我不关心这个初始标题,但如果我忽略它(使用@JsonIgnoreProperties("grouping"),那么其余数据将被跳过,我目前最终得到一个包含默认构造函数值的对象.
我需要创建一个丢弃变量还是需要重组我的对象/类?
java - 将具有统一映射的数据结构序列化为 CSV
我必须序列化与此类似的对象:
领域name
和description
国际化。键是区域设置标识符(“fr”、“en-US”、“en-UK”、“de”、...),值是该区域设置的相应值。
预期 CSV 的标题行必须如下所示:
如果为简洁起见省略了其他语言。
@JsonUnwrapped
似乎没有帮助,因为它会为所有属性生成相同的键“fr”,“en-US”,...。
杰克逊开箱即用有什么方法可以实现这一目标?硬编码支持的语言环境标识符列表是可以接受的。
前面还有更多的恶作剧。另一个要序列化的类如下所示:
每个SomethingElse
都有“颜色”、“味道”、...在每种语言“fr”、“en-US”、“en-UK”、“de”...中的特征值像这样:
区域设置标识符列表在所有用例中都是相同的。
一种可能的方法是先序列化为 JSON,然后“扁平化”该 JSON,以便可以轻松地将其序列化为 CSV。“扁平化”是指转换:
进入:
换句话说:每个叶子值的键将成为原始数据结构中访问它所需的 JavaScript 代码。有没有可以进行这种转换的库方法?
spring - 在 Spring 环境中配置一个 Jackson 的 DeserializationProblemHandler
据我了解,Spring 已经为 Jackson 提供了一个 bean ObjectMapper
。因此,我没有创建一个新的 bean,而是尝试自定义这个 bean。
从这篇博文,然后是这个Github 项目,我使用Jackson2ObjectMapperBuilder
bean 来实现这种定制。
然后,我试图自定义反序列化器以使其宽松:如果在反序列化属性时引发异常,我希望结果对象的属性是null
并让反序列化继续(默认是在第一个属性上失败)反序列化)。
我已经能够通过NullableFieldsDeserializationProblemHandler
扩展的类来实现这一点DeserializationProblemHandler
(我认为代码不相关,但如果需要,我可以分享它)。
注册此处理程序的最简单方法是.addHandler()
使用ObjectMapper
. 但是当然,这样做,我需要在每次注入和使用ObjectMapper
. 我希望能够配置处理程序,以便每次ObjectMapper
自动连接时,处理程序已经存在。
到目前为止,我想出的最佳解决方案是@PostConstruct
仅使用注释来注册问题处理程序。
但是这个解决方案的问题是,我似乎仍然可以访问ObjectMapper
尚未注册问题处理程序的自动装配(当我在调试模式下需要它时,我可以看到它发生了)。
知道我应该如何注册这个处理程序吗?我注意到Jackson2ObjectMapperBuilder
有一个.handlerInstantiator()
,但我不知道如何使用它。
注意我也尝试过Jackson2ObjectMapperBuilderCustomizer,因为我使用的是 Spring Boot,但没有更好的结果。