Reputated_Enginius
Reputated_Enginius

Reputation: 336

How can I get JSON values inside an iterator in Java

I have this JSON file my JSON file

and I want in Java to display in System.Out the contents of this snippet:

else if(jsonObject2.get("type").equals("link")){

            System.out.println(jsonObject2.get("tr_name"));
            System.out.println(jsonObject2.get("tr_description"));
            System.out.println(jsonObject2.get("tr_rules"));
            System.out.println(jsonObject2.get("source"));
            System.out.println(jsonObject2.get("target"));

          }

So far I can get tr_name successfully which is LINKNAME , but since tr_description, tr_rules, source and target are in more depth I cannot access them. From source and target I need to get their id.

How please can I get them?

My full Java code is the following:

package jsontoxml;


import java.io.*;

import org.json.simple.parser.JSONParser;
import org.json.simple.*;
import java.util.*;


public class JacksonStreamExample {

   public static void main(String[] args) {
       JSONParser parser = new JSONParser();
     try {
        Object obj = parser.parse(new FileReader("text.json"));
        JSONObject jsonObject = (JSONObject) obj;

        //Check inside the JSON array with all graph objects
        JSONArray cells = (JSONArray) jsonObject.get("cells");
        //Check inside the JSON object with all graph objects
        Iterator<JSONObject> iterator = cells.iterator();
        while(iterator.hasNext()){
        JSONObject jsonObject2 = (JSONObject) iterator.next();
        if(jsonObject2.get("type").equals("link")){

            System.out.println(jsonObject2.get("tr_name"));
            System.out.println(jsonObject2.get("tr_description"));
            System.out.println(jsonObject2.get("tr_rules"));
            System.out.println(jsonObject2.get("source"));
            System.out.println(jsonObject2.get("target"));

          }

        }

     } catch (Exception e) {

      e.printStackTrace();

     }

  }

}

My System output so far is:

LINKNAME
null
null
{"id":"cae4c219-c2cd-4a4b-b50c-0f269963ca24"}
{"id":"d23133e0-e516-4f72-8127-292545d3d479"}

Upvotes: 1

Views: 286

Answers (1)

Vikas Sachdeva
Vikas Sachdeva

Reputation: 5813

Try below code -

                System.out.println(jsonObject2.get("tr_name"));

                System.out.println(((JSONObject) ((JSONObject) jsonObject2.get("attrs")).get(".attributes"))
                        .get("tr_description"));
                System.out.println(
                        ((JSONObject) ((JSONObject) jsonObject2.get("attrs")).get(".attributes")).get("tr_rules"));

                System.out.println(((JSONObject) jsonObject2.get("source")).get("id"));
                System.out.println(((JSONObject) jsonObject2.get("target")).get("id"));

Output -

LINKNAME2
LINKDESCRIPTION2
null
a53898a5-c018-45c4-bd3f-4ea4d69f58ed
e2bd21f2-508d-44b9-9f68-e374d4fa87ea

Upvotes: 1

Related Questions