从飞镖中的嵌套地图获取字符串

get String from nested Map in dart

我的地图:

{Info: {name: Austin, Username: austinr}}

我正在使用此行将 myName 变量设置为 "Austin"

String myName = map["name"] as String;

然而..这一行似乎将字符串 "myName" 设置为空。 只是在寻找一种从地图中提取我的名字和用户名的方法

谢谢

我能够 运行 成功执行以下代码。

 var map =  {"Info":{"name": "Austin", "Username": "austinr"}}; 
 String myString = map["Info"]["name"] as String;
 print(myString);

输出是预期的 Austin。请试试这个。

此外,如果您想在 Dart 中使用映射,尤其是嵌套键,您也可以使用 gato 包。

基本方式:

var map = {
  'Info': {
    'name': 'Austin',
    'Username': 'austinr',
    'address': {'city': 'New York'}
  }
};

String city = map['Info']['address']['city'] as String;
print(city);

但是它有点脏,如果你的地图中没有 address 键,你也会得到一个错误。

使用Gato

import 'package:gato/gato.dart' as gato;
.
.
.

var map = {
  'info': {
    'name': 'Austin',
    'username': 'austinr',
    'address': {'city': 'New York'}
  }
};

// Get value from a map
print(gato.get<String>(map, 'info.address.city')); // New York

// Set a value to a map
map = gato.set<String>(map, 'info.address.city', 'Other City');

print(gato.get<String>(map, 'info.address.city')); // Other City

Full document