You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中如何获取JSON对象内的动态子对象列表

从foo对象中读取动态子对象列表的方法

首先你提供的JSON示例存在语法错误,末尾的{...}不属于合法的JSON对象结构,正确的foo对象应该是所有子元素都以键值对形式存在,比如:

{
  "foo": {
    "foo1": { "end": 12, "start": 0 },
    "foo2": { "end": 7, "start": 0 },
    "foo3": { "end": 12, "start": 8 }
  }
}

接下来针对不同主流编程语言,给出具体实现方式:

JavaScript

在JS中,你可以通过Object.values()直接提取对象的所有值,得到子对象的数组:

// 假设已解析后的JSON对象为data
const fooObj = data.foo;
const dynamicSubObjects = Object.values(fooObj);
// 此时dynamicSubObjects就是包含所有子对象的列表
console.log(dynamicSubObjects);

如果需要同时获取键名和子对象,用Object.entries():

const subObjectEntries = Object.entries(fooObj);
// 每个元素是[key, value]数组,比如["foo1", {end:12, start:0}]

Python

Python中可以通过字典的.values()方法获取所有子对象:

import json

# 解析JSON字符串
json_str = '''{"foo": {"foo1": {"end":12,"start":0}, "foo2": {"end":7,"start":0}, "foo3": {"end":12,"start":8}}}'''
data = json.loads(json_str)
foo_obj = data["foo"]
dynamic_sub_objects = list(foo_obj.values())
# dynamic_sub_objects就是子对象列表
print(dynamic_sub_objects)

要同时获取键和值的话,用.items():

sub_object_items = list(foo_obj.items())

Java

在Java中,可以用JSONObject(比如org.json库)的values()方法:

import org.json.JSONObject;

public class Main {
    public static void main(String[] args) {
        String jsonStr = "{\"foo\": {\"foo1\": {\"end\":12,\"start\":0}, \"foo2\": {\"end\":7,\"start\":0}, \"foo3\": {\"end\":12,\"start\":8}}}";
        JSONObject data = new JSONObject(jsonStr);
        JSONObject fooObj = data.getJSONObject("foo");
        // 获取所有子对象的集合,可转为列表
        java.util.Collection<Object> dynamicSubObjects = fooObj.values();
        java.util.List<Object> subObjectList = new java.util.ArrayList<>(dynamicSubObjects);
        // 遍历输出
        for (Object obj : subObjectList) {
            System.out.println(obj.toString());
        }
    }
}

核心逻辑都是:提取foo对象后,获取其所有值的集合,转为列表即可,因为foo里的动态子对象本质是对象的属性值,只要拿到所有值就得到了子对象列表。

内容的提问来源于stack exchange,提问作者Mayur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:50:24