gpt4 book ai didi

java - JsonMappingException(原为 java.lang.NullPointerException)

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:04:08 24 4
gpt4 key购买 nike

我已经搜索了一段时间但没有找到任何答案,所以要么我遗漏了一些明显没有人写过的东西,要么我遇到了一个不寻常的问题。我希望这是第一个...

我正在使用第三方库 ( IDMLlib ) 从以 .idml 格式存储的 Adob​​e InDesign 文档中提取信息。内容很容易读取并存储在“Idml”类型的对象中,其中包含我需要的一切。现在,我想使用 Jackson JSON 将此对象发送到 Web 客户端(浏览器) .

我遇到了 2 个问题:

1) 对象树充满了循环引用。我已经通过使用带有注释的 Mix-ins 来解决这个问题

@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@id")  

所以如果问题 2 需要的话,现在我已经准备好了很多 Mix-ins。

2) 我在序列化时不断收到新的特定于对象的错误。

--Output from testMethodsReturnsSomething--
| Failure: testMethods(package.IdmlServiceTests)
| com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: de.fhcon.idmllib.api.elements.Idml["document"]->de.fhcon.idmllib.api.elements.Document["tags"]->de.fhcon.idmllib.api.elements.tags.Tags["xmltagList"]->java.util.ArrayList[0]->de.fhcon.idmllib.api.elements.tags.XMLTag["tagColor"]->de.fhcon.idmllib.api.elements.typedefs.InDesignUIColorType["greenValue"])
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:218)
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:183)
at com.fasterxml.jackson.databind.ser.std.StdSerializer.wrapAndThrow(StdSerializer.java:155)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:533)
...

我已经尝试编写自定义 NullValue/NullKey 序列化程序,但这对 NullPointerException 没有帮助。

我可以在我的混合插件中使用注释来处理这个问题吗?
或者还有其他方法可以序列化这个对象吗?

最佳答案

你是对的,Double 可以处理 null 值,而 double 不能。在我的例子中,我的属性是 Long 类型,但 getter 返回的是 long 值而不是 Long 值。只要值不是null,这是可以接受的。但是当值为 null 时,jackson 无法序列化 longnull 值。

只需更改 getter 以返回 Long 而不是 long 即可修复它。验证您的 getter 是否返回 Double 而不是您的情况下的 double

ps:我知道这个问题已经很老了,但因为我遇到了同样的问题,而且这个问题在谷歌答案中排在第二位......似乎迟到总比不回答好

关于java - JsonMappingException(原为 java.lang.NullPointerException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12779278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com