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

如何从包含A、B、C对象的JSON字符串中提取各类数据?

处理嵌套JSON对象的常见问题

嘿,我来帮你搞定这个嵌套JSON的问题!先把你给出的JSON结构放在这里方便参考:

[{ "attr 1" : "val 1", "attr 2" : "val 2", "B": { "attr 1": "val 1", "attr 2": "val 2", "C": { "attr 1": "val 1", "attr 2": "val 2" } } }]

这里要先明确:数组里的第一个对象就是A对象(它包含了嵌套的B对象,而B又包含C),接下来咱们逐个解决你的问题:

1. 如何拆分该字符串以获取这三类对象的数据?

第一步必须把JSON字符串解析成编程语言能直接操作的对象/字典结构,不同语言有对应的解析方法。解析完成后,就能通过属性或键来分别提取A、B、C的数据了。

JavaScript示例

// 你的原始JSON字符串
const jsonStr = '[{ "attr 1" : "val 1", "attr 2" : "val 2", "B": { "attr 1": "val 1", "attr 2": "val 2", "C": { "attr 1": "val 1", "attr 2": "val 2" } } }]';

// 解析为JavaScript对象数组
const parsedData = JSON.parse(jsonStr);

Python示例

import json

# 你的原始JSON字符串
json_str = '[{ "attr 1" : "val 1", "attr 2" : "val 2", "B": { "attr 1": "val 1", "attr 2": "val 2", "C": { "attr 1": "val 1", "attr 2": "val 2" } } }]';

# 解析为Python列表(包含字典)
parsed_data = json.loads(json_str)

2. 如何获取类A的数据?

A对象就是解析后数组的第一个元素。如果只想要A自身的属性(排除嵌套的B),可以通过过滤属性来实现:

JavaScript示例

// 获取包含B的完整A对象
const fullA = parsedData[0];

// 提取仅属于A的属性(剔除B)
const { B, ...onlyA } = fullA;
console.log(onlyA);
// 输出结果: { "attr 1": "val 1", "attr 2": "val 2" }

Python示例

# 获取包含C的完整A对象
full_a = parsed_data[0]

# 提取仅属于A的属性(剔除B)
only_a = {key: value for key, value in full_a.items() if key != 'B'}
print(only_a)
# 输出结果: {'attr 1': 'val 1', 'attr 2': 'val 2'}

3. 如何获取类B的数据?

B是A对象的一个属性,直接通过键访问即可。如果需要仅保留B自身的属性(排除嵌套的C),同样可以过滤:

JavaScript示例

// 获取包含C的完整B对象
const fullB = parsedData[0].B;

// 提取仅属于B的属性(剔除C)
const { C, ...onlyB } = fullB;
console.log(onlyB);
// 输出结果: { "attr 1": "val 1", "attr 2": "val 2" }

Python示例

# 获取包含C的完整B对象
full_b = parsed_data[0]['B']

# 提取仅属于B的属性(剔除C)
only_b = {key: value for key, value in full_b.items() if key != 'C'}
print(only_b)
# 输出结果: {'attr 1': 'val 1', 'attr 2': 'val 2'}

4. 如何获取类C的数据?

C是B对象的嵌套属性,通过链式访问就能直接拿到:

JavaScript示例

const C = parsedData[0].B.C;
console.log(C);
// 输出结果: { "attr 1": "val 1", "attr 2": "val 2" }

Python示例

c = parsed_data[0]['B']['C']
print(c)
# 输出结果: {'attr 1': 'val 1', 'attr 2': 'val 2'}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:10:33