我正在从一个文件中阅读下面的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]
2条答案
按热度按时间wgeznvg71#
您的JSON内容包含非中断空格(字符代码160,通常称为
),可能是由于复制和粘贴JSON(通常来自网页)使用
缩进JSON。你可以用
myzjeezk2#
Google搜索Json formatter,然后点击任何一个选项,将您的JSON代码粘贴到该格式化程序中,它将验证并突出显示不需要的字符,只需删除它们或替换为您想要的。
例如,后藤https://jsonformatter.org/并按照上述步骤操作