如何在java中从字符串路径加载json并打印json值?

yqyhoc1h  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(275)

我想打印特定json文件中的所有json对象。我的函数接收一个字符串,该字符串是我的项目中json的路径。movielistjson是我的json的路径。
这是我的文件夹结构:

templates
 *fetchIMDB.java
 *Movie.class
movies.json

到目前为止,我一直在尝试这样做,但是我没有找到打开json并按键遍历值的方法。

public void fetchIMDBMovies(String movieListJSON, String outputDir) throws IOException {
    // 
    JSONObject jsonObject;
    System.out.println(movieListJSON);
    JSONParser parser = new JSONParser();
    InputStream in = getClass().getResourceAsStream(movieListJSON);
}

我的json文件如下所示:

[
 {
  "movie_name": "Avatar"
 },
 {
  "movie_name": "Star Wars VII: The Force Awakens"
 },
 {
  "movie_name": "Pirates of the Caribbean: At World's End"
 },
 {
  "movie_name": "Spectre"
 },
 {
  "movie_name": "The Dark Knight Rises"
 }
]

如何获取所有具有值movie_name的json并使用system.out.println()打印它们;
我想打印电影名称(json中电影名称的值)

nfs0ujit

nfs0ujit1#

这是解决办法。
而不是 'your-path' 输入文件的路径。如果你使用 Intelij Idea ,你可以通过 Right click on file + Copy path... + Copy relative path (或完整路径,视需要而定)

try {
            JSONArray array = (JSONArray) new JSONParser().parse(new FileReader("your-path"));
            for (Object temp : array) {
                JSONObject jsonObject = (JSONObject) temp;
                System.out.println(jsonObject.get("movie_name"));
            }
        } catch (IOException | ParseException  e) {
            e.printStackTrace();
        }

相关问题