Selenium Java中提取JSON数组内key3值报错,求正确提取方法
正确提取嵌套JSON中的key3值(Java场景)
你的报错原因是直接在顶层JSON对象中查找key3,但key3实际嵌套在data对象下的getData数组元素里,所以无法直接找到。
另外注意:你提供的原始JSON字符串存在语法错误(每个对象内的键值对之间缺少逗号),示例代码中已修正该问题,否则JSON解析会直接失败。
以下是修正后的完整代码,能正确获取两个key3的值:
import org.json.JSONArray; import org.json.JSONObject; public class JsonParseExample { public static void main(String[] args) { String response = "{\"data\":{\"getData\":[{\"key1\":\"value1\",\"key2\":\"value2\",\"key3\":\"value3\"},{\"key1\":\"value11\",\"key2\":\"value21\",\"key3\":\"value31\"}]}}"; // 1. 解析顶层JSON对象 JSONObject jsonObject = new JSONObject(response); // 2. 获取data子对象 JSONObject dataObj = jsonObject.getJSONObject("data"); // 3. 获取getData数组(存储多个对象的集合) JSONArray getDataArray = dataObj.getJSONArray("getData"); // 4. 遍历数组,逐个提取每个元素的key3值 for (int i = 0; i < getDataArray.length(); i++) { JSONObject itemObj = getDataArray.getJSONObject(i); String key3Value = itemObj.getString("key3"); System.out.println("key3的值:" + key3Value); } } }
执行结果:
key3的值:value3 key3的值:value31
内容的提问来源于stack exchange,提问作者Prasanna Lakshmi
相关产品推荐
相关产品推荐

