2017-01-16 76 views
1

我有這個JSON文件my JSON file我怎樣才能獲得JSON值的迭代器內用Java

,我想在Java中的System.out中顯示該片段的內容:

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")); 

      } 

到目前爲止我可以成功地獲得tr_name這是LINKNAME,但由於tr_description,tr_rules,source和更深入我無法訪問它們。從sourcetarget我需要得到他們的id

我怎麼能得到它們?

我的完整的Java代碼如下:

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(); 

    } 

    } 

} 

我的系統輸出到目前爲止是:

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

回答

1

嘗試下面的代碼 -

   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")); 

輸出 -

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

DEFINITELY YESSSSSSSSS !!!!有效!!!謝謝!!! –