json字符串
String field="[{"
+ "{\"key\":\"cloud\",\"value\":[\"AWS\"],\"search\":\"EQUALITY\"}"
+ ",{\"key\":\"region\",\"value\":[\"US EAST1\"],\"search\":\"EQUALITY\"}"
+ "}]";
导致错误的代码:
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(field, ComputeResourceInputVO[].class)
相关类
public class ComputeResourceInputVO implements Serializable {
public ComputeResourceInputField[] computeResourceInputField;
}
class ComputeResourceInputField implements Serializable {
public String[] value;
public String search;
public String key;
}
错误:
原因:com.fasterxml.jackson.core.jsonparseexception:意外字符('{'(代码123)):应以双引号作为字段名的开头
2条答案
按热度按时间gjmwrych1#
有一个额外的开放式花括号:
将第一行更改为:
并删除json中最后一个结束卷发。
pvcm50d12#
查看-->mapper.readvalue行(field,computeresourceinputvo[].class),这意味着作为json的字段需要Map到computeresourceinputvo的数组
下一步:
在computeresourceinputvo类中,有一个computeresourceinputfield数组
在computeresourceinputfield中定义了属性。
因此,对于这种类型的代码,字段json字符串的格式不正确。
你应该有这样的东西