gpt4 book ai didi

java - jackson :使用 [Ljava.lang.Double 的 InvalidDefinitionException

转载 作者:太空宇宙 更新时间:2023-11-04 10:26:37 26 4
gpt4 key购买 nike

我正在使用 Jackson 将以下 json 映射到 Map<String, Class> :

    {
"keyA": "java.lang.Double",
"keyB": "[Ljava.lang.Double"
}

但我遇到以下异常:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.lang.Class`, problem: [Ljava/lang/Double

引用the Java documentation for class file format该值应该是正确的。

有人知道如何解决这个问题吗?

更新:
我使用“[L”,因为我想要 Double[] 类。

最佳答案

根据 documentation ,对象类型必须以分号结尾:

ObjectType:
L ClassName ;

keyB更改为[Ljava.lang.Double;:

String jsonInput = "{\n" +
" \"keyA\": \"java.lang.Double\",\n" +
" \"keyB\": \"[Ljava.lang.Double;\",\n" +
" \"keyC\": \"java.lang.Double\"\n" +
" }";
TypeReference<HashMap<String, Class>> typeRef
= new TypeReference<HashMap<String, Class>>() {};
ObjectMapper mapper = new ObjectMapper();
Map<String, Class> map = mapper.readValue(jsonInput, typeRef);
System.out.println(map);

输出:

{keyA=class java.lang.Double, keyB=class [Ljava.lang.Double;, keyC=class java.lang.Double}

关于java - jackson :使用 [Ljava.lang.Double 的 InvalidDefinitionException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50466432/

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