Java 读取Json文件,但键没有引号
我编写了以下代码来读取一个文件Java 读取Json文件,但键没有引号,java,json,parsing,Java,Json,Parsing,我编写了以下代码来读取一个文件 JSONObject obj = (JSONObject)parser.parse(new FileReader(file.getPath())); 但当文件内容如下所示时出错 { needed:"something", other1:true, other2:"not important" } 错误消息位置1处出现意外字符(n)。 我怎样才能纠正它?谢谢有一个简单的Jackson库用于读取不带引号的字段 Obje
JSONObject obj = (JSONObject)parser.parse(new FileReader(file.getPath()));
但当文件内容如下所示时出错
{
needed:"something",
other1:true,
other2:"not important"
}
错误消息位置1处出现意外字符(n)。
我怎样才能纠正它?谢谢有一个简单的Jackson库用于读取不带引号的字段
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
String value = "{" +
" needed:\"something\"," +
" other1:true," +
" other2:\"not important\"" +
"}";
Map items = objectMapper.readValue(value, HashMap.class);
System.out.println("Got object " + items);
您可以将文件直接传递给readValue方法
Map items = objectMapper.readValue(new File(filePath), HashMap.class);
您还可以指定自己的具体类,而不是HashMap
ConcreteClass items = objectMapper.readValue(new File(filePath), ConcreteClass.class);
这是maven依赖项
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.11.1</version>
</dependency>
com.fasterxml.jackson.core
杰克逊核心
2.11.1
您拥有的文件不是JSON。您可能可以将其视为JavaScript并通过JS引擎运行,但修复损坏的输入是正确的方法。最简单的方法是从外部更正JSON格式并使用当前方法读取文件。