有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSpringRestController:返回JSON资源

如何使用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文件。我想从resources目录获取该文件,并从ResController端点将其作为JSON返回。然后,我希望能够通过从本地主机上的另一个应用程序发出的GET请求来访问它


共 (1) 个答案

  1. # 1 楼答案

    定义一个RestController,从resources目录获取JSON并通过REST端点返回。 这里,资源中的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;
        }
    }