Я пытаюсь прочитать файл JSON в своем java-приложении, используя репозиторий org / json / json / 20171018 (http://central.maven.org/maven2/org/json/json/20171018/ -> json-20171018.jar). Мой JSON-файл выглядит следующим образом:
{
"manifest_version": 2,
"name": "Chrome Extension",
"version": "0.1",
"permissions": [
"tabs"
],
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": ["content.js"]
}
],
"background": {
"matches": [
"google.de",
"youtube.com",
"wikipedia.de"
],
"scripts": ["background.js"],
"persistent": true
}
}
Мне интересен раздел background
, более конкретный в ссылках на background
matches
. Итак, я создал сначала JSONObject
всего файла, затем JSONObject
раздела background
и затем JSONArray
типа matches
. Но, к сожалению, я получаю эту ошибку, которая появляется при запуске программы:
Exception in thread "main" org.json.JSONException: JSONObject["matches"] not found.
at org.json.JSONObject.get(JSONObject.java:520)
at org.json.JSONObject.getJSONArray(JSONObject.java:714)
at Json.main(Json.java:19)
Мой код Java выглядит следующим образом:
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Json {
public static void main(String[] args){
String loc = new String("chromeAdon/manifest.json");
File file = new File(loc);
try {
String content = new String(Files.readAllBytes(Paths.get(file.toURI())));
JSONObject json = new JSONObject(content);
JSONObject json2 = new JSONObject(json.getJSONObject("background"));
JSONArray jarray = json2.getJSONArray("matches");
for (int i=0;i<jarray.length();i++){
System.out.println(jarray.getString(0));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Кто-нибудь знает, где моя ошибкаесть