【发布时间】:2019-09-11 11:20:13
【问题描述】:
解组仅包含单个 JSON 对象的文件时出现错误:“IllegalStateException:Json 输入流必须以 Json 对象数组开头” 我找不到任何解决方法,我不明白为什么会这样。
@Bean
public ItemReader<JsonHar> reader(@Value("file:${json.resources.path}/*.json") Resource[] resources) {
log.info("Processing JSON resources: {}", Arrays.toString(resources));
JsonItemReader<JsonHar> delegate = new JsonItemReaderBuilder<JsonHar>()
.jsonObjectReader(new JacksonJsonObjectReader<>(JsonHar.class))
.resource(resources[0]) //FIXME had to force this, but fails anyway because the file is "{...}" and not "[...]"
.name("jsonItemReader")
.build();
MultiResourceItemReader<JsonHar> reader = new MultiResourceItemReader<>();
reader.setDelegate(delegate);
reader.setResources(resources);
return reader;
}
我需要一种方法来解组单个对象文件,强制数组有什么意义(我的用例中没有)??
【问题讨论】:
-
注:显然,JacksonJsonObjectReader 和 GsonJsonObjectReader 的工作方式相同
标签: json jackson spring-batch unmarshalling