gpt4 book ai didi

java - 如何在 Java 迭代器中获取 JSON 值

转载 作者:行者123 更新时间:2023-11-30 06:56:33 25 4
gpt4 key购买 nike

我有这个 JSON 文件 my JSON file

我希望在 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, sourcetarget 更深入,我无法访问它们。我需要从 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"}

最佳答案

尝试下面的代码 -

                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

关于java - 如何在 Java 迭代器中获取 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41677277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com