问题标签 [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 - 序列化 Jackson xml 的通用类型
我正在尝试将其序列化为 XML:
使用下一个特定的类类型:
但我得到了下一个xml:
代替:
有任何想法吗?
java - 由于没有方法签名,Artifactory.createClient() 为 JFrog Artifactory 抛出异常
尝试实例化 Artifactory 客户端时出现以下错误。
每当我在主函数中独立运行我的代码时,它都不会引发异常并且可以正常工作。但是当我在 MVC 架构(WebApp)中运行它时,它会停止工作并抛出以下错误:
没有方法签名:com.fasterxml.jackson.databind.ObjectMapper.addMixIn() 适用于参数类型:(java.lang.Class, java.lang.Class) 值:[interface org.jfrog.artifactory.client.model .Repository,接口 org.jfrog.artifactory.client.impl.jackson.RepositoryMixIn]
当它执行时,我得到下面的错误堆栈跟踪。我对这个问题进行了广泛的研究,除了这个问题中引用的错误之外,我没有发现任何人有类似的错误:https ://github.com/JFrogDev/artifactory-client-java/issues/85
上述问题是由于错误的依赖关系造成的。我也得到了 2.4.6 版本的 artifactory 客户端和 jackson 库。
groovy.lang.MissingMethodException:没有方法签名:com.fasterxml.jackson.databind.ObjectMapper.addMixIn() 适用于参数类型:(java.lang.Class, java.lang.Class) 值:[interface org.jfrog .artifactory.client.model.Repository,接口 org.jfrog.artifactory.client.impl.jackson.RepositoryMixIn] 14:04:21,684 +0000 INFO [stdout](默认任务 22)在 org.codehaus.groovy.runtime。 ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55) 14:04:21,684 +0000 INFO [stdout](默认任务 22)在 org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) 14: 04:21,684 +0000 INFO [stdout](默认任务 22)在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) 14:04:21,684 +0000 INFO [stdout](默认任务-22) 在 org.codehaus.groovy.runtime。callsite.AbstractCallSite.call(AbstractCallSite.java:108) 14:04:21,684 +0000 INFO [stdout](默认任务 22)在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) 14:04:21,684 +0000 INFO [stdout](默认任务 22)在 org.jfrog.artifactory.client.impl.ArtifactoryImpl.(ArtifactoryImpl.groovy:46) 14:04:21,684 +0000 INFO [stdout](默认task-22) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 14:04:21,684 +0000 INFO [stdout] (默认 task-22) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 14:04:21,684 +0000 INFO [stdout](默认 task-22)在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源)14:04:21,684 +0000 INFO [stdout](默认 task-22)在 java.lang.reflect.Constructor。newInstance(Unknown Source) 14:04:21,684 +0000 INFO [stdout] (默认 task-22) at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77) 14:04:21,684 +0000 INFO [ stdout](默认任务 22)在 org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102) 14:04:21,684 +0000 INFO [stdout](默认任务 22)在 org .codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57) 14:04:21,692 +0000 INFO [stdout](默认任务 22)在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor (AbstractCallSite.java:182) 14:04:21,692 +0000 INFO [stdout] (默认任务 22) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:194) 14:04:21 ,692 +0000 INFO [stdout](默认任务 22)在 org.jfrog.artifactory.client.ArtifactoryClient.create(ArtifactoryClient.groovy:95) 14:04:21,693 +0000 INFO [stdout](默认任务 22)在org.jfrog.artifactory.client.ArtifactoryClient.create(ArtifactoryClient.groovy) 14:04:21,693 +0000 INFO [stdout](默认任务 22)在 com.xyz.abc.utils.WGArtifactoryUtils.getFiles(WGArtifactoryUtils.java: 41) 14:04:21,693 +0000 INFO [stdout](默认任务 22)在 com.xyz.abc.lakshya.controllers.ListPlController.findFilesFromArtifactory(ListPlController.java:196) 14:04:21,693 +0000 INFO [stdout ](默认 task-22)在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)14:04:21,694 +0000 INFO [stdout](默认 task-22)在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)14: 04:21,695 +0000 INFO [stdout](默认 task-22)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 14:04:21,695 +0000 INFO [stdout](默认 task-22)在 java.lang.reflect.Method .invoke(Unknown Source) 14:04:21,695 +0000 INFO [stdout] (默认任务 22) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) 14:04:21,696 + org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) 14:04:21,696 +0000 INFO [stdout](默认任务 22)处的 0000 信息 [stdout](默认任务 22) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) 14:04:21,696 +0000 INFO [stdout](默认任务 22)在 org.springframework.web.servlet。 mvc.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal( RequestMappingHandlerAdapter.java:690) 14:04:21,697 +0000 INFO [stdout] (默认 task-22) 在 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) 14:04: 21,697 +0000 INFO [stdout](默认任务 22)在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945) 14:04:21,697 +0000 INFO [stdout](默认任务 22)在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876) 14:04:21,698 +0000 INFO [stdout] (default task-22) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) 14:04:21,698 +0000 INFO [stdout] (默认任务 22) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java: 863) 14:04:21,698 +0000 INFO [stdout] (默认任务 22) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 14:04:21,699 +0000 INFO [stdout] (默认任务-22) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) 14:04:21,699 +0000 INFO [stdout] (默认 task-22) at javax.servlet.http.HttpServlet.service( HttpServlet.java:790) 14:04:21,699 +0000 信息 [stdout](默认任务 22)在 io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86) 14:04:21,699 +0000 信息[stdout](默认任务 22)在 io.undertow.servlet.handlers。FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130) 14:04:21,699 +0000 INFO [stdout](默认任务 22)在 com.adobe.jobcloud.spring.security.filters.SessionTimeoutFilter.doFilter(SessionTimeoutFilter.java: 65) 14:04:21,699 +0000 INFO [stdout] (默认任务 22) 在 io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) 14:04:21,700 +0000 INFO [stdout] (默认任务 22)在 io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) 14:04:21,700 +0000 INFO [stdout](默认任务 22)在 com.adobe.jobcloud。 ws.security.filters.UiResponseFilter.doFilterInternal(UiResponseFilter.java:55) 14:04:21,700 +0000 INFO [stdout](默认任务 22)在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java: 108) 14:04:21,700 +0000 INFO [stdout](默认任务 22)在 io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) 14:04:21,700 +0000 INFO [stdout](默认任务 22)在io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) 14:04:21,700 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain。 doFilter(FilterChainProxy.java:330) 14:04:21,700 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) 14: 04:21,700 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) 14:04:21,701 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 14:04:21,701 +0000 INFO [stdout](默认任务 22 ) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 14:04:21,701 +0000 INFO [stdout] (默认任务 22) at org.springframework.security.web.FilterChainProxy$ VirtualFilterChain.doFilter(FilterChainProxy.java:342) 14:04:21,701 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) 14: 04:21,701 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 14:04:21,702 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 14:04:21,702 +0000 INFO [stdout](默认任务 22 ) 在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 14:04:21,702 +0000 INFO [stdout] (默认任务 22) 在 org.springframework.security.web.servletapi。 SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154) 14:04:21,702 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 14: 04:21,703 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.savedrequest.RequestCacheAwareFilter。doFilter(RequestCacheAwareFilter.java:45) 14:04:21,703 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 14:04: 21,703 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) 14:04:21,703 +0000 INFO [stdout](默认任务-22)在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 14:04:21,704 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web。 authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) 14:04:21,704 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web。FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 14:04:21,704 +0000 INFO [stdout] (默认任务 22) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java: 110) 14:04:21,704 +0000 INFO [stdout] (默认任务 22) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 14:04:21,705 +0000 INFO [stdout ](默认任务 22)在 org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) 14:04:21,705 +0000 INFO [stdout](默认任务 22)在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) 14:04:21,705 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web。FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 14:04:21,705 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) 14:04:21,705 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 14:04:21,706 +0000 INFO [stdout] (默认任务 22)在 org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) 14:04:21,706 +0000 INFO [stdout](默认任务 22)在 org.springframework.security.web。 FilterChainProxy.doFilter(FilterChainProxy.java:160) 14:04:21,706 +0000 INFO [stdout](默认任务 22)在 org.springframework.web.filter.DelegatingFilterProxy。invokeDelegate(DelegatingFilterProxy.java:344) 14:04:21,706 +0000 INFO [stdout] (默认任务 22) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) 14:04:21,706 + io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) 处的 0000 INFO [stdout](默认任务 22) 14:04:21,707 +0000 io 处的信息 [stdout](默认任务 22)。 undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) 14:04:21,707 +0000 io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler. java:85) 14:04:21,707 +0000 INFO [stdout](默认任务 22)在 io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 14:04:21,707 +0000 INFO [stdout](默认任务 22)在 io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 14:04:21,709 +0000 INFO [stdout](默认任务 22)在在 io.undertow.server.handlers.PredicateHandler.handleRequest( PredicateHandler.java:43) 14:04:21,709 +0000 INFO [stdout](默认任务 22)在 io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 14:04:21,710 + 0000 信息 [stdout](默认任务 22)在 io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 14:04:21,710 +0000 INFO [stdout](默认任务 22)在 io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 14:04:21,711 +0000 INFO [stdout ](默认 task-22)在 io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 14:04:21,711 +0000 INFO [stdout](默认 task-22)在 io.undertow.servlet。 handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 14:04:21,716 +0000 INFO [stdout](默认任务 22)在 io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) 14:04:21,716 +0000 INFO [stdout](默认任务 22)在 io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler。handleRequest(CachedAuthenticatedSessionHandler.java:70) 14:04:21,716 +0000 io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) 14:04:21,717 + io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 14:04:21,719 +0000 INFO [stdout](默认任务 22)处的 0000 INFO [stdout](默认任务 22)。 io.undertow.server.handlers.PredicateHandler.handleRequest( PredicateHandler.java:43) 14:04:21,719 +0000 INFO [stdout](默认任务 22)在 io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 14:04:21,719 +0000 INFO [stdout](默认任务 22)在 io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261) 14:04:21,719 +0000 INFO [stdout](默认任务 22)在io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:248) 14:04:21,719 +0000 INFO [stdout](默认任务 22)在 io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler .java:77) 14:04:21,719 +0000 INFO [stdout](默认任务 22)在 io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:167) 14:04:21,720 +0000 INFO [stdout](默认 task-22)在 io.undertow.server.Connectors.executeRootHandler(Connectors.java:199) 14:04:21,720 +0000 INFO [stdout](默认 task-22)在 io.undertow.server。 HttpServerExchange$1。run(HttpServerExchange.java:761) 14:04:21,720 +0000 INFO [stdout] (默认任务 22) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 14:04:21,720 +0000 INFO [stdout] (默认任务 22)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 14:04:21,720 +0000 INFO [stdout](默认任务 22)在 java.lang.Thread.run(未知来源) )
我正在使用以下版本:
神器:2.4.6
杰克逊(数据绑定,注释,核心):2.4.6
java - 从一组 POJO 中找到正确的 Json 消息实例
我有一个 JsonString,例如
我有一组 POJO,例如
TestMessage、TestOther、TestSomethingElse
我需要的是可以检测 Json 字符串类型的东西,以便我可以使用正确的 Pojo 操作数据。
我可以对 XML 数据做类似的事情,如下所示
我尝试了以下方法,但它不起作用:
java - 无法在 Spring Boot 中将 ProblemHandler 设置为 ObjectMapper
我尝试使用 Jackson2ObjectMapperBuilderCustomizer 将自定义问题处理程序添加到对象映射器:
但是当我自动装配 ObjectMapper bean _problemHandlers 属性为空时。
我还尝试使用以下方法自定义现有的 ObjectMapper:
但结果是一样的。我不知道谁能删除这个属性。我根本不会在另一个地方初始化对象映射器的另一个构建器/工厂/等。我做错了什么?
java-8 - 如何使用 com.fasterxml.jackson.databind.ObjectMapper 将 json 字符串解析为其对应的 JAXB 对象
背景:
(注意日期元素 - 即具有“nillable”属性 - 似乎导致“com.fasterxml.jackson.databind.JsonMappingException”)。
问题:
如何使用 com.fasterxml.jackson.databind.ObjectMapper 将 json 字符串解析为相应的 JAXB 对象形式(参见下面的示例代码)?
非常简单的模式如下所示(注意带有“nillable”属性的日期元素):
失败的示例代码...
这是相关的异常堆栈跟踪:
如有需要,提供更多信息
ThingList.java(我一直无法将 json 字符串解析成这个对象)
事物类型.java
pom.xml
环境:
Java 1.8.x
找到修复,参考下面 Veeram 的帖子。
通过添加此依赖项来修改 pom.xml:
添加 binding.ejb 文件(如下) - 位置:src/main/ejb/binding.ejb:
添加日期时间适配器:
Thingtst.java 现在看起来像这样:
项目结构:
json - 访问 json 属性两次
考虑以下json
文档:
我需要将其反序列化为以下 POJO :
看起来嵌套节点 (a
和b
) 只能在mapper.readValue
. 只有当我从node1
中删除且仅当我从.@JsonAlias({"a","b"})
node2
node2
@JsonAlias({"a","b"})
node1
如果我在两者上都保留注释,则只会填充其中一个。
是否支持此映射?如果没有,解决方法应该是什么?
我正在使用杰克逊 2.9.1
java - 将字段序列化为 json
我需要将 JSON 正文发送到 REST 服务。不幸的是,服务很旧,我需要发送一个 POJO,包含 JSON 字符串字段。所以它看起来像这样:
所以 SomeData 应该像这样发送:
我还没有找到任何 Jackson 魔术注释来使其工作,并且我怀疑它可以以某种方式制作,因为 Java 中的类型擦除并且可能无法为此目的编写自定义序列化程序,但我不确定.
您能否建议我如何使其工作或解决该问题的任何想法?非常感谢您!
json - Jackson 2 Json 反序列化仅适用于显式 Mapper
我正在为自动杰克逊 json 反序列化而苦苦挣扎。我的要求是正确反序列化具有所有小写属性名称(或与 bean 属性名称完全不同)的 json(带有驼峰表示法的 bean 属性)。
应用服务器:Weblogic 12.2.1
应该工作的示例json:
依赖项:
豆
ApplicationConfig(从 Netbeans 自动生成)
资源
getPerson1(String requestBody)的第一个变体正在工作,但getPerson2(Person person)的第二个变体不工作。参数变量person不为空,但字段firstName / lastName均为空。
请求正文内容:
在尝试了将近一天(并搜索“整个”互联网)之后,我完全被卡住了,不知道可能是什么原因。
jersey-2.0 - 与 Jackson 2.9.2 兼容的 Jersey 版本有哪些
你能帮我解决这两个查询/问题吗:
任何在 Jackson 2.9.2 上工作过的人都可以告诉我 Jackson 2.9.2 的兼容 Jersey 版本是什么。我目前正在使用 Jersey 2.23.2,但它不适用于 Jackson 2.9.2。我收到以下错误:
2)一般来说,有没有办法找到罐子的组合。我之前也遇到过这个问题,同时找到了泽西罐和弹簧罐的正确组合。如果有人可以指导,它将节省我和其他人面临同样问题的大量时间这个。
谢谢。
java - FasterXMl Jackson Api中的ArrayNode和JsonNode有什么区别?
我有一种情况,其中数据(Json Array Data)将从缓存中获取,然后使用 java8 流需要过滤掉,所以我可能需要使用 ArrayNode 或 JsonNode 但不知道两者的用例。如果有人可以举个例子,我如何使用 JSONNode 或 Arraynode 从 json 文件中读取 json 数据,以及如何使用流来过滤那些 JsonNode 或 ArrayNode。