【发布时间】:2019-02-08 07:25:04
【问题描述】:
我需要获取依赖 JSON 数组的 fileName 值并将其放入单独的数组中(如 java 列表)。如果每个 JSON Array 对象包含名为“vulnerabilities”的 JSON 数组,则将其与“fileName”、“cvssScore”和“severity”一起放入另一个列表或 JSON 对象中 这是 JSON 对象。这是一个相当大的 JSON,所以我上传到云端硬盘
https://drive.google.com/open?id=1puZRU4XY5loLBnBqo2NvKajj_dBR7Ol7
我可以像下面这样直接得到一个特定的值。
String jsonFile = "C:\\Users\\Dexter\\IdeaProjects\\autoupgrader\\target\\dependency-check-report.json";
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(jsonFile)));
JSONTokener tokener = new JSONTokener(br);
JSONObject object = new JSONObject(tokener);
JSONArray ja = object.getJSONArray("dependencies");
JSONObject jo = ja.getJSONObject(0);
JSONObject jo2 = jo.getJSONObject("evidenceCollected");
JSONArray ja2 = jo2.getJSONArray("versionEvidence");
JSONObject jo3 = ja2.getJSONObject(0);
System.out.println(jo3.getString("value"));
然后我尝试将其转换为arraylist,但我找不到解决方法。
List <JSONObject> list = new ArrayList<>();
for (int i=0; i<ja.length(); i++){
list.add(ja.getJSONObject(i));
}
System.out.println(Arrays.toString(list.toArray()));
【问题讨论】: