遍历JSON字符串并获取键和值的解决方法可以使用递归方法来实现。下面是一个使用Python的示例代码:
import json
def traverse_json(json_obj, prefix=''):
if isinstance(json_obj, dict):
for key, value in json_obj.items():
new_prefix = prefix + '.' + key if prefix else key
if isinstance(value, (dict, list)):
traverse_json(value, prefix=new_prefix)
else:
print(f'{new_prefix}: {value}')
elif isinstance(json_obj, list):
for index, item in enumerate(json_obj):
new_prefix = prefix + '.' + str(index) if prefix else str(index)
if isinstance(item, (dict, list)):
traverse_json(item, prefix=new_prefix)
else:
print(f'{new_prefix}: {item}')
# 示例 JSON 字符串
json_str = '''
{
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York"
},
"hobbies": ["reading", "coding"]
}
'''
# 解析 JSON 字符串
json_obj = json.loads(json_str)
# 遍历 JSON 对象并获取键和值
traverse_json(json_obj)
运行以上代码,将会输出如下结果:
name: John
age: 30
address.street: 123 Main St
address.city: New York
hobbies.0: reading
hobbies.1: coding
这个示例代码会递归地遍历JSON对象,如果遇到嵌套的字典或列表,则会在键名前添加相应的索引或键名。最后,输出每个键和对应的值。