无法弄清楚如何在 Dart 中加载 yaml 文档

Cst*_*le5 2 yaml dart

根据Dart-Yaml pub 包的自述文件,我应该能够执行以下操作:

var db = loadYamlDocument("db.yaml");

print(db['hostname']);给我的价值我为在YAML端口指定的,但是有人告诉我YamlDocument没有实例方法[]。好吧,我猜那个对象没有地图行为,这是我期望它有的东西。查看文档,提到了 YamlMap,但我根本不知道如何实现它。

如果我只是尝试,print(db);我实际上得到了字符串:'db.yaml'.

所以我尝试使用new File('db.yaml');然后将该变量发送到loadYamlDocument方法中,但这也不起作用。

有没有人有幸阅读 yaml 文档并在 Dart 中从中获取地图?

Had*_*ard 7

import "dart:io";
import "package:yaml/yaml.dart";

main() {
  File file = new File('pubspec.yaml');
  String yamlString = file.readAsStringSync();
  Map yaml = loadYaml(yamlString);
}
Run Code Online (Sandbox Code Playgroud)

编辑:

Map loadYamlFileSync(String path) {
  File file = new File(path);
  if (file?.existsSync() == true) {
    return loadYaml(file.readAsStringSync());
  }
  return null;
}

Future<Map> loadYamlFile(String path) async{
  File file = new File(path);
  if ((await file?.exists()) == true) {
    String content = await file.readAsString();
    return loadYaml(content);
  }
  return null;
}

main(List<String> args){
  print(loadYamlFileSync("pubspec.yaml"));
}
Run Code Online (Sandbox Code Playgroud)