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

如何在Angular 5和Ionic 3中展示JSON子节点值而不显示父节点

提取JSON子节点值并忽略父节点的实现方案

嘿,这事儿好办!你就是想把JSON里那些嵌套在父节点(比如companies、centers)里的子节点内容单独拎出来打印,对吧?我给你用Python和JavaScript这俩常用语言分别演示怎么实现,包你一看就懂:

Python 实现

我们可以用Python内置的json模块解析数据,然后逐层提取子节点内容,完全避开父节点的键名:

import json

# 你的原始JSON数据(我补全了centers的示例结构)
raw_json = '''
[
    {
        "companies": [
            {"id": 1, "name": "Prueba", "company_number": "23423423A", "latitude": 241241.12, "longitude": 213213.12, "country": "ES"},
            {"id": 2, "name": "Prueba2", "company_number": "23423423A", "latitude": 241241.12, "longitude": 213213.12, "country": "US"},
            {"id": 3, "name": "Prueba3", "company_number": "23423423AB", "latitude": 241241.19, "longitude": 213213.20, "country": "US"}
        ]
    },
    {
        "centers": [
            {"id": 1, "name": "Center1", "address": "Main St 123", "country": "ES"},
            {"id": 2, "name": "Center2", "address": "Oak Ave 456", "country": "US"}
        ]
    }
]
'''

# 解析JSON字符串为Python对象
parsed_data = json.loads(raw_json)

# 遍历外层数组中的每个对象
for parent_obj in parsed_data:
    # 提取每个父对象里的子数组(不管键是companies还是centers)
    for _, sub_nodes in parent_obj.items():
        # 逐个打印子节点的详细内容
        for node in sub_nodes:
            print("--- 子节点详情 ---")
            for key, value in node.items():
                print(f"{key}: {value}")
            print("-----------------")

代码说明

  1. 先用json.loads()把JSON字符串转成Python可操作的列表/字典
  2. 遍历外层数组里的每个父对象,用items()获取父对象的键值对
  3. 直接取子数组(忽略父节点的键名),然后遍历子数组里的每个子节点,打印其所有键值对
  4. 如果只想打印格式化后的JSON子节点,可以把内部循环换成print(json.dumps(node, indent=2))

JavaScript 实现

不管是浏览器环境还是Node.js,都可以用原生JS轻松实现这个需求:

// 你的原始JSON数据
const jsonData = [
    {
        "companies": [
            {"id": 1, "name": "Prueba", "company_number": "23423423A", "latitude": 241241.12, "longitude": 213213.12, "country": "ES"},
            {"id": 2, "name": "Prueba2", "company_number": "23423423A", "latitude": 241241.12, "longitude": 213213.12, "country": "US"},
            {"id": 3, "name": "Prueba3", "company_number": "23423423AB", "latitude": 241241.19, "longitude": 213213.20, "country": "US"}
        ]
    },
    {
        "centers": [
            {"id": 1, "name": "Center1", "address": "Main St 123", "country": "ES"},
            {"id": 2, "name": "Center2", "address": "Oak Ave 456", "country": "US"}
        ]
    }
];

// 遍历外层数组
jsonData.forEach(parentObj => {
    // 遍历父对象的键值对
    Object.entries(parentObj).forEach(([_, subNodes]) => {
        // 逐个输出子节点内容
        subNodes.forEach(node => {
            console.log("--- 子节点详情 ---");
            Object.entries(node).forEach(([key, value]) => {
                console.log(`${key}: ${value}`);
            });
            console.log("-----------------");
            // 若要输出格式化JSON,用下面这行:
            // console.log(JSON.stringify(node, null, 2));
        });
    });
});

代码说明

  1. 直接操作JSON对象(如果是字符串,先用JSON.parse()转换)
  2. 用forEach遍历外层数组和父对象的键值对
  3. 忽略父节点键名,直接处理子数组里的每个节点,打印其键值对
  4. 同样,想要格式化JSON输出的话,用JSON.stringify(node, null, 2)即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:43:13