【发布时间】:2020-02-10 13:23:53
【问题描述】:
我正在通过 Spring 控制器传递一个如下所示的 json 对象:
{
"dataset":"myDataset",
"typeProperties":[
"myProperty"
],
"stopWords":{
"de":[ "daß","allem","dem"],
"fr":["salut"]
}
}
对应的java对象是:
public class DatasetConfigRequest {
String dataset = "";
List<String> typeProperties;
HashMap<String,ArrayList<String>> stopWords = new HashMap<String,ArrayList<String>>();
//getter and setters
但是当我通过它时,我收到以下错误:
JSON parse error: Cannot deserialize instance of `java.util.HashMap<java.lang.Object,java.lang.Object>` out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.HashMap<java.lang.Object,java.lang.Object>` out of START_ARRAY token
at [Source: (PushbackInputStream); line: 1, column: 104] (through reference chain: eu.qanswer.core2.server.controller.payload.dataset.DatasetConfigRequest["stopWords"])]
我知道问题在于具有 ArrayList 值的 HashMap。但是如何解决呢?
谢谢 D063520
【问题讨论】:
-
更清楚地创建一个类来保存@M.Çıklabakkal 所说的
stopWords值,因此您可以更好地控制来自客户端的内容。
标签: java spring jackson deserialization