gpt4 book ai didi

Java - 获取不同数量的 json 变量

转载 作者:行者123 更新时间:2023-12-01 16:44:14 24 4
gpt4 key购买 nike

我正在使用 java 构建一个访问 API 的工具。

我试图让用户决定使用哪些参数(例如通过复选框)。

因此用户会决定采用 5 个参数之一:

p1
p2
p3
p4
p5

然后我将使用这些参数调用 API 并接收 Json 字符串作为响应。

因此 Json String 可以是其中之一

{"data":[{"p1":"value1", "p2":"value2", "p3":"value3", "p4":"value4", "p5":"value5"}]}
{"data":[{"p1":"value1", "p2":"value2", "p3":"value3", "p4":"value4"}]}
{"data":[{"p1":"value1", "p2":"value2", "p3":"value3"}]}
{"data":[{"p1":"value1", "p2":"value2"}]}
or
{"data":[{"p1":"value1"}]}

我正在尝试将“数据”内的所有内容打印到控制台。这是我到目前为止得到的代码:

JsonParser parser = new JsonParser();
JsonObject json = (JsonObject)
parser.parse(adsInsights.toString());
System.out.println(json.get("p1").getAsString() + "\t"
+ json.get("p2").getAsString() + "\t"
+ json.get("p3").getAsString() + "\t"
+ json.get("p4").getAsString() + "\t" +
json.get("p5").getAsString()
);

我的问题是:如何确定要打印哪些内容,而不需要执行大量 if/else?

我需要的只是“数据”中的每个变量。有没有办法做到这一点?

编辑:

首先感谢大家的回答。

为了将来的引用,我想,这就是我所做的:

//getting the keys, which the user has selected. Detailed implementation irrelevant for this matter
String selectedKeys[] = getSelectedKeys();

JsonParser parser = new JsonParser();
JsonObject json = (JsonObject)
parser.parse(adsInsights.toString());
for(int i = 0; i < selectedKeys.length; i++) {
if(json.has(selectedKeys[i])) {
System.out.print(json.get(selectedKeys[i]).getAsString() + "\t");
}
}
System.out.println();

最佳答案

您可以迭代 Json 键,无论其中有哪些键并打印它们的值。

JsonParser parser = new JsonParser();
JsonObject json = (JsonObject)
parser.parse(adsInsights.toString());

for (key: json.keys) {
System.out.print(json.get(key).getAsString());
}

关于Java - 获取不同数量的 json 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55809853/

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