我在使用Jackson XML Mapper正确解析XML文件时遇到了一些麻烦。
<Test>
<Simple>
<x>I am x</x>
<y>I am y</y>
</Simple>
</Test>
和这个简单的类:
@Root(name="Simple",strict = false)
class Simple {
@Element(name = "x", required = false)
lateinit var x :String
@Element(name = "y", required = false)
lateinit var y :String
}
编译器不断抛出此错误:Exception in thread "main" com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "Simple" (class Simple), not marked as ignorable (2 known properties: "x", "y"])
我猜这是因为Kotlin在类内找不到文件的正确结构?问题是我需要解析一个大得多的xml文件,并且需要避免镜像xml的每一个元素,否则它会变得巨大。
那么,我如何“部分”解析xml,将根设置为<Simple>
标记,而避免使用<Test>
标记呢?
非常感谢!
1条答案
按热度按时间mpbci0fu1#
下面是一个可行的解决方案。注意,我已经使Map器不区分大小写,以处理XML中大写的Simple属性。您可以通过在属性上添加注解来覆盖默认的小写名称。还要注意,使用数据类时,不需要使用lateinit变量或类似的变量:
确保您build.gradle.kts具有以下依赖项(如果还没有):