Как получить доступ ко всем подклассам и строкам файла JSON в Java? - PullRequest
0 голосов
/ 09 апреля 2019

Мне нужно распечатать информацию из разных файлов JSON (это будет указано в args [0]) и распечатать их.

Все возможные файлы доступа отображаются как таковые (это сокращенная версия файла JSON)

 {
   "DefinitionSource" : "",
   "Heading" : "Valley Forge National Historical Park",
   "RelatedTopics" : [
        "FirstURL" : //url here
        "Text" : "hello world"
 },
 {
        "FirstURL" : //url here
        "Text" : "hello world"
 },
 ]

Есть много этих подклассов, которые отличаются в зависимости от файла JSON, который выбран для доступа. Для указанного файла JSON мне нужно получить доступ ко всем строкам в файле JSON с пометкой «Текст». Вот фрагмент кода, который я использую:

JsonReader reader = Json.createReader(new StringReader(jsonString));
JsonObject mainObject = reader.readObject(); 
JSONObject RelatedTopic = json.getJSONObject("RelatedTopics");
String text = RelatedTopic.getString("Text");
System.out.println("Textual Description: " + text);

1 Ответ

1 голос
/ 09 апреля 2019
void find_text(JsonObject obj){
    Iterator<String> keys = jsonObject.keys();
    while (keys.hasNext()){
        String key = keys.next()
        if (key == "Text") {
            .. do your stuff ....
        } else if (obj.get(key) instanceof JSONObject) 
            find_text(obj.get(key))

      }
}

Это просматривает все ключи текста JSON и, если это объект, вызывает метод рекурсивно.

...