以下是一个示例代码,用于遍历嵌套的JSON对象并添加属性:
def add_property_to_json(json_obj, property_name, property_value):
if isinstance(json_obj, dict):
# 遍历字典类型的JSON对象
for key, value in json_obj.items():
if isinstance(value, (dict, list)):
# 如果值是字典或列表类型,则递归调用该函数
add_property_to_json(value, property_name, property_value)
else:
# 否则,添加属性到当前键值对
value[property_name] = property_value
elif isinstance(json_obj, list):
# 遍历列表类型的JSON对象
for item in json_obj:
if isinstance(item, (dict, list)):
# 如果项是字典或列表类型,则递归调用该函数
add_property_to_json(item, property_name, property_value)
else:
# 否则,添加属性到当前项
item[property_name] = property_value
# 示例用法
json_data = {
"name": "John",
"age": 30,
"address": {
"city": "New York",
"state": "NY"
},
"pets": [
{
"name": "Buddy",
"type": "dog"
},
{
"name": "Sunny",
"type": "cat"
}
]
}
add_property_to_json(json_data, "color", "red")
print(json_data)
输出结果为:
{
"name": "John",
"age": 30,
"address": {
"city": "New York",
"state": "NY",
"color": "red"
},
"pets": [
{
"name": "Buddy",
"type": "dog",
"color": "red"
},
{
"name": "Sunny",
"type": "cat",
"color": "red"
}
],
"color": "red"
}
在这个示例中,我们定义了一个名为add_property_to_json
的函数,它接受三个参数:json_obj
表示要遍历的JSON对象,property_name
表示要添加的属性名称,property_value
表示要添加的属性值。
函数内部使用递归的方式遍历JSON对象。如果当前值是字典或列表类型,则递归调用函数;否则,将属性添加到当前键值对或项中。
在示例中,我们将属性color
添加到了JSON对象的各个层级中,包括顶层的键值对、嵌套的字典和列表中的项。最后,打印输出了添加属性后的JSON对象。