在dart中使用嵌套哈希映射時,如何跟蹤一系列鍵以獲得當前嵌套映射?

我正在從一個api接收JSON。這個JSON為用戶控制一些對話框。例如

{
   "text":"Are you experiecing issues?",
   "true":{
      "text":"Are you using linux?",
      "false":{
         "text":"maybe you should use linux",
         "none":"none"
      }
   }
}

要訪問最終的json-it,一系列鍵應該是json[“true”][“false”]。有沒有辦法把這些鍵保存在一個變量中,這樣我就可以添加或刪除它們來訪問不同的級別?

提前謝謝?

? 最佳回答:

您可以實現一個函數,該函數接受List個鍵并執行重復查找,直到用完鍵或停止查找嵌套的Map

Object nestedLookup(Map<Object, Object> map, List<Object> keys) {
  dynamic value = map;
  int currentKeyIndex = 0;
  while (currentKeyIndex < keys.length && value is Map) {
    value = value[keys[currentKeyIndex++]];
  }
  
  if (value != null && currentKeyIndex < keys.length) {
    // We have more keys than nested Maps.
    throw ArgumentError('Leftover keys: ${keys.sublist(currentKeyIndex)}');
  }
  return value;
}

注意,在上面的實現中,如果您提供的鍵太少,您將得到一個嵌套的Map。如果您提供non-existent鍵,您將返回null,如果您提供一個鍵來執行對非Map的查詢,它將拋出一個ArgumentError

主站蜘蛛池模板: 国产凹凸在线一区二区| 亚洲日韩国产一区二区三区在线| 久久精品中文字幕一区| 国产无人区一区二区三区| 日韩精品电影一区| 国产熟女一区二区三区五月婷| 国产精品亚洲专一区二区三区| 一区二区免费电影| 国产高清不卡一区二区| bt7086福利一区国产| 国产一区中文字幕在线观看| 免费看一区二区三区四区| 亚洲av乱码一区二区三区| 在线视频一区二区日韩国产| 日韩有码一区二区| 久久亚洲AV午夜福利精品一区| 成人免费一区二区无码视频| 精品日韩在线视频一区二区三区 | 人妻av综合天堂一区| 一区二区三区精品视频| 亚洲视频在线一区二区三区| 日本韩国黄色一区二区三区| 亚洲综合无码精品一区二区三区| 91一区二区视频| 久久婷婷色综合一区二区| 国产精品福利一区二区久久| 无码人妻一区二区三区在线水卜樱| 国产日韩AV免费无码一区二区 | 日本韩国黄色一区二区三区| 国产综合一区二区| 国产成人av一区二区三区在线观看| 亚洲av高清在线观看一区二区 | 国产精品区一区二区三| 亚洲AV无码一区二区乱孑伦AS| 精品国产一区二区麻豆| 日本午夜精品一区二区三区电影 | 无码精品人妻一区二区三区人妻斩| 无码av中文一区二区三区桃花岛| 国产伦一区二区三区高清 | 国产精品第一区揄拍无码| 亚洲日本一区二区三区在线|