json - 获取嵌套映射中的每个键条目
问题描述
我有一个嵌套地图,如下所示:
{ "name":"Italien", "documentId":a4c3jzNeYIaz3MrPWh1c,
"children":[ { "name":"Lombardei", ], "documentId":XM0SBotZiL7YwCWVptaF, "children":[ { "name":"Brescia" , "documentId":Cb6NMCTCs5kbdjbmlpyO, "children":[ { "name":"Nave", "documentId":2cZuhJjRHejA1ztPr2iS, "children":[ ] }, ] }, ] }, ] }
这可能会永远持续下去。所以我需要获取 documentId 的每一个值,即使是在深层嵌套的孩子中。我不能明确地调用这些键,因为地图总是动态的并且会随着时间而变化。
解决方案
您可以像这样使用递归:
handleMap(Map map, [String key]) {
map.foreach((key, value) {
if (value is Map) handleMap(value, key);
else if (value is List) handleList(value, key);
else handleValue(value, key);
});
}
handleList(List list, [String key]) {
list.foreach((entry) {
if (entry is Map) handleMap(entry);
else if (entry is List) handleList(entry);
else handleValue(entry);
});
}
handleValue(dynamic value, [String key]) {
...
}
调用它:
handleMap(data);
推荐阅读
- netsuite - NetSuite 税率未显示
- python - 如何从 django view.py 运行管理命令
- java - 如何在 Google OR 工具的 VRP 中强制执行某些节点不应首先和最后访问的硬约束
- r - 在 R 代码下面进行什么计算
- javascript - Touch.enable 无法通过 Animate CC 在 CreateJS 中工作
- python - 如何获得用户输入信息并确认输入
- javascript - 如何从用户输入图像文件,然后用 javascript 对其进行 base64 编码?
- javascript - 我可以告诉我的 php 函数在“file_get_contents”使用 php 代码中的 javascript 加载页面之前不执行吗?
- php - Stripe:使用手动对象属性测试 Webhook
- javascript - 使用 Lodash 或 ES6 在 JS 中构建动态变量名称