Flutter 获取对象属性名称

nit*_*k72 6 json object dart flutter

我传递了以下对象:

var myVar = { typeA: { option1: "one", option2: "two" } }
Run Code Online (Sandbox Code Playgroud)

我希望能够从上述结构中拉出密钥 typeA。

这个值每次都可以改变,所以下次它可能是 typeB。

所以我想知道是否有任何方法可以做到这一点

JAA*_*one 8

我能够使用“钥匙”解决

对于这样的 json 示例:

{
"1-0001": {
  "name": "red",
  "hex": "FF0000"
 },
"1-0002": {
  "name": "blue",
  "hex": "0000FF"
 },
"1-0003": {
  "name": "green",
  "hex": "008000"
 }
}
Run Code Online (Sandbox Code Playgroud)

我能够使用

Map<String, dynamic> decoded = json.decode(jsonString);
for (var colour in decoded.keys) {
  print(colour);                   // prints 1-0001
  print(decoded[colour]['name']);  // prints red
  print(decoded[colour]['hex']);   // prints FF0000
}
Run Code Online (Sandbox Code Playgroud)


Gün*_*uer 5

要获取所有文件名,您可以使用:

var data = ...
 
var filenames = [];
for(var i = 0; i < data.length; i++) {
  var item = data[0]['files'];
  var key = item.keys.first;
  var filename = item[key]['filename'];
  filenames.add(filename);
}

print(filenames);
Run Code Online (Sandbox Code Playgroud)