【发布时间】:2017-01-16 13:15:52
【问题描述】:
我有这个 JSON 文件 my JSON file
我希望在 Java 中在 System.Out 中显示这个 sn-p 的内容:
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 和target 更深入,我无法访问它们。从source 和target 我需要得到他们的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"}
【问题讨论】: