如何获取运行时生成的动态父节点JSON值?
解决动态键名JSON的数据提取问题
嘿,这个动态键名的问题我之前也踩过坑!其实不用纠结那个动态的父节点名称,有几种非常简洁的方法可以直接提取到你想要的内容,我按常用编程语言给你整理了最优方案:
JavaScript 解决方案
方法1:直接取值(最简洁)
因为你的JSON结构里只有一个动态键的对象,用Object.values()获取所有值的数组,再取第一个元素就搞定:
const rawData = { noteCount_xxx: { favorite:"favorite-border", id:"noteCount_xxx", note:"noteContent", title: "notetitle" } }; const targetData = Object.values(rawData)[0]; console.log(targetData); // 输出:{ favorite: "favorite-border", id: "noteCount_xxx", note: "noteContent", title: "notetitle" }
方法2:先获取动态键名再取值
如果你需要用到那个动态的父节点名称(比如noteCount_xxx),可以先用Object.keys()拿到键名,再访问对应的值:
const rawData = { noteCount_xxx: { favorite:"favorite-border", id:"noteCount_xxx", note:"noteContent", title: "notetitle" } }; const dynamicKey = Object.keys(rawData)[0]; const targetData = rawData[dynamicKey];
Python 解决方案
方法1:直接取值(最简洁)
Python字典的values()是可迭代对象,用next(iter())直接取第一个值就行:
raw_data = { "noteCount_xxx": { "favorite": "favorite-border", "id": "noteCount_xxx", "note": "noteContent", "title": "notetitle" } } target_data = next(iter(raw_data.values())) print(target_data) # 输出:{'favorite': 'favorite-border', 'id': 'noteCount_xxx', 'note': 'noteContent', 'title': 'notetitle'}
方法2:先获取动态键名再取值
同样,如果需要保留动态键名,可以先拿到键再取值:
raw_data = { "noteCount_xxx": { "favorite": "favorite-border", "id": "noteCount_xxx", "note": "noteContent", "title": "notetitle" } } dynamic_key = next(iter(raw_data.keys())) target_data = raw_data[dynamic_key]
小贴士
如果你的JSON结构里可能存在多个动态键,那只需要遍历values()里的每个元素即可;但根据你的描述,只有一个动态父节点,上面的方法完全够用,而且都是语言原生的API,性能拉满~
内容的提问来源于stack exchange,提问作者Tushar Acharekar
相关产品推荐
相关产品推荐

