从Dart中的嵌套地图获取String

时间:2018-09-21 09:50:13

标签: json dart flutter decode

我的地图:

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

我正在使用此行将myName变量设置为“奥斯汀”

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

但是..这行似乎将字符串“ myName”设置为null。 只是在寻找一种从地图上提取我的名字和用户名的方法

谢谢

2 个答案:

答案 0 :(得分:3)

此外,如果您想在 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

答案 1 :(得分:2)

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

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

预期输出为Austin。请尝试这个。