我需要创建一个类,其中包含的字段是根据API返回结果动态变化的。
我正在使用自定义的Rest API,它返回的数据在每种情况下的字段数量并不相同。到目前为止,我一直使用具有工厂构造函数的类从响应中创建对象,如下所示:
但是这种方法并不适用于所有情况,因为一些响应包含少于或多于4个字段。
它可以是以下情况之一:
我该如何创建一个动态类,它可以检查有多少个字段并在运行时创建自己?
我正在使用自定义的Rest API,它返回的数据在每种情况下的字段数量并不相同。到目前为止,我一直使用具有工厂构造函数的类从响应中创建对象,如下所示:
class MyClass {
dynamic field1;
dynamic field2;
dynamic field3;
dynamic field4;
MyClass({
this.field1,
this.field2,
this.field3,
this.field4,
});
factory MyClass.fromJson(dynamic json) {
return MyClass(
field1: json['field1'],
field2: json['field2'],
field3: json['field3'],
field4: json['field4'],
);
}
}
如果响应如下,则上述类能够正常运行:
{
"field1": 123,
"field2": 432,
"field3": 213,
"field4": 331
}
但是这种方法并不适用于所有情况,因为一些响应包含少于或多于4个字段。
它可以是以下情况之一:
{
"field1": 123,
"field2": 432,
"field3": 213
}
或者
{
"field1": 123,
"field2": 432,
"field3": 213,
"field4": 331,
"field5": 251
}
我该如何创建一个动态类,它可以检查有多少个字段并在运行时创建自己?
List
或Map
中。 - julemand101