【发布时间】:2020-12-08 22:27:07
【问题描述】:
我正在尝试将与 Swift 程序兼容的 JSON 代码读入 Flutter 应用程序。结构是这样的:
{
"tagDict" : {
"abc" : {
"helpHdr" : "short text1",
"helpText" : "long text1"
},
"def" : {
"helpHdr" : "short text2",
"helpText" : "long text2"
}
}
}
这会在 Swift 中创建一个字典,并在 Dart 中创建一个 {key : {helpHdr, helpText}} 类型的映射。基于此的变量应该启用 label = myVariable[tag].helpHdr,或者保留示例 label = myVariable["abc"].helpHdr 应该将“short text1”分配给标签
为了解析嵌套数组,我正在使用它,但是,不知道如何将它转移到这样的嵌套映射中。
class MyClass {
List<MySubClass> myArray;
MyClass({
this.myArray,
});
factory MyClass.fromJson(Map<String, dynamic> parsedJson){
var list = parsedJson['myArray'] as List;
List<MySubClass> listObject = list.map((i) => MySubClass.fromJson(i)).toList();
return new MyClass(
myArray: listObject,
);
}
}
class MySubClass {
int id;
String text1;
String text2;
MySubClass({
this.id,
this.text1,
this.text2,
});
factory MySubClass.fromJson(Map<String, dynamic> parsedJson){
return new MySubClass(
id: parsedJson['id'],
text1: parsedJson['text1'],
text2: parsedJson['text2'],
);
}
}
【问题讨论】:
-
你已经拥有的有什么问题?为什么需要嵌套地图?但是如果你真的需要一个嵌套的地图,你可以使用与 subclass.fromJson 做同样事情但返回地图的方法来代替使用子类。
-
试试这个。您可以定义类的外观,并让构建运行器处理其他所有事情。 flutter.dev/docs/development/data-and-backend/…
标签: json flutter dictionary dart nested