是的,我认为这是可能的(使用 MappingJacksonHttpMessageConverter)。
MappingJacksonHttpMessageConverter
具有read()
采用两个参数的方法:Class
和HttpInputMessage
MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter();
YourClazz obj = (YourClazz) converter.read(YourClazz.class, new MyHttpInputMessage(myJsonString));
使用此方法,您可以从单个 json 消息中读取单个对象,但 YourClazz 可以是一些集合。
接下来,您必须创建自己的 HttpInputMessage 实现,在此示例中,它期望 json 作为字符串,但您可能可以将流传递给您的 json 文件。
public class MyHttpInputMessage implements HttpInputMessage {
private String jsonString;
public MyHttpInputMessage(String jsonString) {
this.jsonString = jsonString;
}
public HttpHeaders getHeaders() {
// no headers needed
return null;
}
public InputStream getBody() throws IOException {
InputStream is = new ByteArrayInputStream(
jsonString.getBytes("UTF-8"));
return is;
}
}
PS。您可以使用数据库发布您的应用程序