ObjectMapper.readvalue 在 json

ObjectMapper.readvalue in json

在对象映射器 class 中,当我将参数作为 "abc,asd"(用于 Junit 测试目的)传递时,我得到 JsonParseException。请说明为什么会出现此异常。 它将接受什么值以进行进一步处理。

ObjectMapper mapper = new ObjectMapper();
List<LinkedHashMap> listM=mapper .readValue("abc,asd",ArrayList.class);
for (Iterator iterator = listM.iterator(); iterator.hasNext();) {
                LinkedHashMap linkedMap = (LinkedHashMap) iterator.next();
syso("linkedMap .get(methodname).get(0)")

您收到此异常是因为 abc,asd 不是有效的 JSON。 JSON 是一个 Javascript 对象,基本上具有键和值。示例:

{"abc":"abc"}

并且可以获得这些列表:

[{"abc":"abc"}, {"asd":"asd"}]

因此,有效代码为:

ObjectMapper mapper = new ObjectMapper();
List<LinkedHashMap> listM = mapper.readValue("[{\"abc\":\"abc\"}, {\"asd\":\"asd\"}]", ArrayList.class);
    for (Iterator iterator = listM.iterator(); iterator.hasNext();) {
        LinkedHashMap linkedMap = (LinkedHashMap) iterator.next();
        System.out.println(linkedMap);
    }