如何从JSONArray嵌套对象中获取text字段值?附代码示例
正确获取JSON数组中text字段值的方法
你的问题出在values是JSON数组类型,不能通过values.text这种对象嵌套的方式直接访问。需要先获取数组,再逐个取出里面的对象来读取text字段。
完整实现代码
// 先确保output不为空且有效 JSONObject output1 = null; if (output != null && !output.isEmpty()) { output1 = new JSONObject(output); } if (output1 != null) { // 获取values对应的JSON数组 JSONArray valuesArray = output1.getJSONArray("values"); // 遍历数组获取每个元素的text值 for (int i = 0; i < valuesArray.length(); i++) { JSONObject item = valuesArray.getJSONObject(i); String text = item.getString("text"); // 这里可以处理获取到的text,比如打印或者存储 System.out.println("第" + (i+1) + "个text值:" + text); } // 如果只需要获取指定索引的text(比如第一个) if (valuesArray.length() > 0) { JSONObject firstItem = valuesArray.getJSONObject(0); String firstText = firstItem.getString("text"); } }
关键说明
- 必须先通过
getJSONArray("values")拿到数组对象,不能直接用.访问数组内的字段 - 数组元素是JSONObject类型,需要用
getJSONObject(index)取出单个对象后,再用getString("text")获取对应值 - 实际使用时建议添加
JSONException异常处理,避免数组为空或字段不存在时抛出异常
内容的提问来源于stack exchange,提问作者damla Yilmaz
相关产品推荐
相关产品推荐

