【问题标题】:Spring RestController: Return JSON resourceSpring RestController:返回 JSON 资源
【发布时间】:2018-08-22 00:33:50
【问题描述】:

如何使用 Spring 在 localhost 上提供 JSON 服务?我想通过 RestController 从项目的资源目录中提供 JSONFile。

到目前为止我有:

@RestController
public class JSONRestController {

    @GetMapping("/list")
    public String listUsers(){
        ClassLoader classLoader = getClass().getClassLoader();
        File file = new File(classLoader.getResource("fileName").getFile());
        //or with an external library: org.springframework.util.StreamUtils
        String msg = StreamUtils.copyToString( new ClassPathResource("list.json").getInputStream(), Charset.defaultCharset()  );

        return file.toString() //not an existing method
    }
}

目的是让 Spring 应用程序可以通过 REST 端点从资源中提供 JSON 文件。我想从资源目录中获取文件并将其作为 JSON 从 ResController 端点返回。然后我希望能够使用来自另一个也在本地主机上的应用程序的 GET 请求来访问它。

【问题讨论】:

标签: java json spring resources


【解决方案1】:

定义一个从资源目录获取 JSON 并通过 REST 端点返回的 RestController。 这里资源中的 JSON 称为 items.json,端点为 localhost:8080/db(假设您没有更改 server.port 属性)。

@RestController
public class JSONController {

private JSONObject jsonObject;

    @GetMapping("/db")
    @CrossOrigin
    public JSONObject getJSON(){

        try {
            Resource resource = new ClassPathResource("/items.json");
            InputStream resourceInputStream = resource.getInputStream();
            JSONParser jsonParser = new JSONParser();
            jsonObject = (JSONObject)jsonParser.parse(
                    new InputStreamReader(resourceInputStream, "UTF-8"));

        } catch (IOException | ParseException e) {
            e.printStackTrace();
        }

        return jsonObject;
    }
}

【讨论】:

    猜你喜欢
    • 2015-07-24
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2019-05-14
    • 2016-01-08
    • 1970-01-01
    相关资源
    最近更新 更多