如何在JAVA中将任何字符串转换为有效的JSON格式

如何在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

我得到了以下格式的字符串,这在使用Jackson ObjectMapper readTree api进行解析时导致了问题。用于分析给定字符串的代码是

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格式?这就是我的问题所在。