不使用Map访问嵌套键值对(如Json)

kmbjn2e3  于 2022-12-01  发布在  其他
关注(0)|答案(1)|浏览(110)

使用Dart v2.8
尝试打印嵌套项(如JSON),如下所示

var UsrVar = {
        "NamVak": "UsrNam",
        "MblVak": ["9876543210", "9876543212"],
        "MylVak": ["usrnam@gmail.com", "usrnam@yahoo.com"],
        "AdrVak": {
            "AraVak" : "NamPlc",
            "CtyVak": "NamCty",
            "PinVak": 560056,
        }
  };

  print(UsrVar["MylVak"][1]);
  print(UsrVar["AdrVak"]["CtyVak"]);

以上代码显示错误为:
错误:没有为类“Object?”定义运算符“[]”。

  • 'Object'来自'dart:core'。请尝试将运算子更正为现有的运算子,或定义'[]'运算子。print(UsrNryVar[“AdrVak”][“CtyVak”]);
hgqdbh6s

hgqdbh6s1#

UsrVar的键属于Object类型,因此必须将返回的对象转换为所需的类型:

(UsrVar["MylVak"] as List)[1]
(UsrVar["AdrVak"] as Map)["CtyVak"]

阅读更多关于The Dart type system的信息可能会有所帮助。

相关问题