我想知道从资源读取,解析和提供文件的正确方法是什么。
目前,我正在执行以下操作:
fun getFile(request: ServerRequest): Mono<ServerResponse> {
val parsedJson =
objectMapper.readValue(readFile("fileName.json"), JsonModel::class.java)
// modify parsed json
return ok().contentType(APPLICATION_JSON).bodyValue(parsedJson)
}
private fun readFile(fileName: String) =
DefaultResourceLoader()
.getResource(fileName)
.inputStream.bufferedReader().use { it.readText() }
我注意到Netty中的JsonObjectDecoder类,但是我不知道是否可以应用于我的用例。
那么,如何读/解析资源文件的反应方式是什么?
最佳答案
扩展@vins答案后,我得出以下解决方案:
Jackson2JsonDecoder()
.decodeToMono(
DataBufferUtils.read(
DefaultResourceLoader()
.getResource("$fileName.json"),
DefaultDataBufferFactory(),
4096
),
ResolvableType.forClass(JsonModel::class.java), null, null
)
.map { it as JsonModel }
关于json - 使用WebFlux从资源读取和解析文件的 react 方式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61139186/