gpt4 book ai didi

java - 使用其他 jsonarray 值作为键获取 jsonarray 的值

转载 作者:行者123 更新时间:2023-12-01 11:05:07 28 4
gpt4 key购买 nike

我从服务器获取以下 json:

{
"Data": [
{
"Record": [
" d11",
"d12"
]
},
{
"Record": [
" d21",
"d22"
]
}
],
"Keys": [
"Key1",
" key2"
]

}


我想检索相对于值(key1,key2?)有序记录值(key1,key2?

注意:仅使用 org.json api。

最佳答案

你的问题对我来说仍然有点不清楚,但我假设你想将该 JSON 转换为记录列表,其中每个记录(例如)是一个包含键列表中的键和数据列表中的值。

为了实现这一点,我们首先将 JSON 解析为 JSONObject:

String json = " ... ";
JSONTokener tokener = new JSONTokener(json);
JSONObject jsonObject = new JSONObject(tokener);

然后我们提取键列表和数据列表:

JSONArray data = jsonObject.getJSONArray("Data");
JSONArray keys = jsonObject.getJSONArray("Keys");

并定义一个列表来包含我们的输出:

List<Map<String, String>> records = new ArrayList<>();

最后,我们迭代数据列表,提取该列表中每个项目的记录值列表,然后迭代键以创建从键到记录值的映射:

for (int i = 0; i < data.length(); i++) {
JSONObject dataItem = data.getJSONObject(i);
JSONArray recordValues = dataItem.getJSONArray("Record");

Map<String, String> record = new HashMap<>();

for (int j = 0; j < keys.length(); j++) {
String key = keys.getString(j);
String value = recordValues.getString(j);
record.put(key, value);
}

records.add(record);
}

当我们打印 records 的值时,我们会得到如下所示的内容:

[{Key1= d11,  key2=d12}, {Key1= d21,  key2=d22}]

关于java - 使用其他 jsonarray 值作为键获取 jsonarray 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33043440/

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