如何在JAVA中将任何字符串转换为有效的JSON格式
我得到了以下格式的字符串,这在使用Jackson ObjectMapper readTree api进行解析时导致了问题。用于分析给定字符串的代码是如何在JAVA中将任何字符串转换为有效的JSON格式,java,json,jackson,Java,Json,Jackson,我得到了以下格式的字符串,这在使用Jackson ObjectMapper readTree api进行解析时导致了问题。用于分析给定字符串的代码是 ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true); objectMapper.configure(JsonParser.Feature.ALLOW_BACKSLASH
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
objectMapper.configure(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true);
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
objectMapper.configure(JsonParser.Feature.ALLOW_COMMENTS, true);
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
JsonNode rootNode = objectMapper.readTree(inputString);
当它遇到下面字符串中的“7”时,将引发异常
{
OBJECT_CONVERSION_ERROR:"Failed..."
Portal:{
7061:"User is....."}
}
如何使用JAVA将这样的字符串转换为有效的JSON格式?
我正在使用jackson-all-1.9.11.jar
下面是我的异常消息
org.codehaus.jackson.JsonParseException:意外字符('7'(代码55)):需要有效的名称字符(对于不带引号的名称)或双引号(对于带引号的名称)作为字段名的开头
在[来源:java.io。StringReader@3fb1549b;行:1,列:1433]
在将输入字符串传递给对象映射器进行解析之前,是否有方法将其转换为有效的json格式
JSONParser parser = new JSONParser(); JSONObject json = (JSONObject)
parser.parse(stringToParse);
阅读更多信息:Jackson ObjectMapper需要在其默认配置中使用双引号字段名 要更改此行为,可以执行以下操作:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
你能上传引发错误的代码摘录吗?如果看不到至少一些代码,就无法判断发生了什么。这看起来像一个javascript对象,不是有效的JSON…如果显示的值是您的输入字符串,那么这就是无效的JSON,因为名称-值对中的名称应该是字符串,不是像7061这样的数字。@RobObdeijn是的,它不是一个有效的JSON格式。是否可以将它转换为有效的JSON格式?这就是我的问题所在。