Я хочу передать JSON клиенту по запросу.Мой настоящий код выглядит примерно так:
...
import org.apache.commons.io.IOUtils;
import org.springframework.core.io.Resource;
...
@RestController
public class Controller {
@Value("classpath:file.json")
private Resource jsonFile;
@GetMapping(path ="json", produces = "application/json")
public String getJSON() {
try (InputStream in = jsonFile.getInputStream()) {
return IOUtils.toString(in, StandardCharsets.UTF_8.name());
}
catch ...
}
}
...
jsonFile - это файл .json, содержимое которого я хочу отправить обратно пользователю, аннотация @Value добавляет classpath.
Проблемаis: Response - это не только json, но и разрывы строк кодируются как \n
, и весь JSON заключен в кавычки, превращая его в одну большую строку вместо объекта.Поскольку JSON на самом деле является файлом .json, я не хотел бы сначала разбирать его на объект.
jsonFile выглядит следующим образом:
{
"thing1": [
{
"list1": [
"abc"
],
"subthing1": {
"list1": [
"aaa",
"bbb"
],
"list2": [
"ccc"
],
"list3": [
"zzz"
],
},
"subthing2":
...
Редактировать 1: Возврат объекта JSON в качестве ответа в Spring Boot * В последнем абзаце ответов 1015 * говорится: «Если вы хотите вернуть сериализованную строку json, просто верните строку.», Что для меня красным цветом: «если у вас есть json встрока, возвращает строку "