java com.fasterxml.jackson.core.JsonParseException:阅读json文件时出现意外字符(代码160)

628mspwn  于 2023-05-15  发布在  Java
关注(0)|答案(2)|浏览(307)

我正在从一个文件中阅读下面的JSON内容并转换为Map,但我得到了下面的异常。请让我知道如果有人遇到这样的问题。我验证了我的json内容,看起来有效。不知道为什么会出现这个错误。
Json内容:

{
    "Results":[{         
        "TotalPositiveFeedbackCount": 0      
    },{
        "TotalPositiveFeedbackCount": 1      
    }   ]
}

验证码:

Map<String, Object> domainMap = new HashMap<String, Object>();
try {
    responseJson = getFile("reviewresponse.json");
    //responseJson = new String(Files.readAllBytes(Paths.get("reviewresponse.json")), StandardCharsets.UTF_8);
    ObjectMapper jsonObjectMapper = new ObjectMapper();
    jsonObjectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
    domainMap = jsonObjectMapper.readValue(responseJson,
                   new TypeReference<Map<String, Object>>() {});
}

异常详细信息:

com.fasterxml.jackson.core.JsonParseException: Unexpected character (' ' (code 160)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name
 at [Source: {
    "Results":[{         
        "TotalPositiveFeedbackCount": 0      
    },{
        "TotalPositiveFeedbackCount": 1      
    }   ]
}
; line: 2, column: 15]
wgeznvg7

wgeznvg71#

您的JSON内容包含非中断空格(字符代码160,通常称为&nbsp;),可能是由于复制和粘贴JSON(通常来自网页)使用&nbsp;缩进JSON。

你可以用

responseJson = responseJson.replace('\u00A0',' ');
myzjeezk

myzjeezk2#

Google搜索Json formatter,然后点击任何一个选项,将您的JSON代码粘贴到该格式化程序中,它将验证并突出显示不需要的字符,只需删除它们或替换为您想要的。
例如,后藤https://jsonformatter.org/并按照上述步骤操作

相关问题