Flutter 为同一个键解析具有不同值类型的json
我知道可以解析json字符串,然后检查值是否为特定类型。我想知道在弗利特是否有这样的惯例 例如:Flutter 为同一个键解析具有不同值类型的json,flutter,dart,Flutter,Dart,我知道可以解析json字符串,然后检查值是否为特定类型。我想知道在弗利特是否有这样的惯例 例如: "{"id":1,"some_key":100}" 也可能是 "{"id":1,"some_key":"GOOD"}" 现在我的目标是: class someClass { int id, int some_key } 我必须将some键更改为String类型,然后在解析检查中,如果类型不是String,则必须将some_键转换为String?或者有什么方法可以做到这一点?只需
"{"id":1,"some_key":100}"
也可能是
"{"id":1,"some_key":"GOOD"}"
现在我的目标是:
class someClass {
int id,
int some_key
}
我必须将some键更改为String类型,然后在解析检查中,如果类型不是String,则必须将some_键转换为String?或者有什么方法可以做到这一点?只需在类中使该变量动态,以便解析您接收到的任何数据以及何时使用它。您可以使用
someKey.runtimeType
检查类型并以任何方式使用。
你的班级看起来像这样
class SomeClass {
int id;
dynamic someKey;
SomeClass({this.id, this.someKey});
SomeClass.fromJson(Map<String, dynamic> json) {
id = json['id'];
someKey = json['some_key'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['some_key'] = this.someKey;
return data;
}
}
class-SomeClass{
int-id;
动态someKey;
SomeClass({this.id,this.someKey});
fromJson(映射json){
id=json['id'];
someKey=json['some_key'];
}
映射到JSON(){
最终地图数据=新地图();
数据['id']=this.id;
数据['some_key']=this.someKey;
返回数据;
}
}
在你想要解析数据的地方,使用这个
SomeClass someclass = SomeClass.fromJson(jsonDecode(<YOUR JSON STRING HERE>));
SomeClass-SomeClass=SomeClass.fromJson(jsonDecode());
只需在类中使该变量动态,以便解析您接收到的任何数据以及何时使用它。您可以使用
someKey.runtimeType
检查类型并以任何方式使用。
你的班级看起来像这样
class SomeClass {
int id;
dynamic someKey;
SomeClass({this.id, this.someKey});
SomeClass.fromJson(Map<String, dynamic> json) {
id = json['id'];
someKey = json['some_key'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['some_key'] = this.someKey;
return data;
}
}
class-SomeClass{
int-id;
动态someKey;
SomeClass({this.id,this.someKey});
fromJson(映射json){
id=json['id'];
someKey=json['some_key'];
}
映射到JSON(){
最终地图数据=新地图();
数据['id']=this.id;
数据['some_key']=this.someKey;
返回数据;
}
}
在你想要解析数据的地方,使用这个
SomeClass someclass = SomeClass.fromJson(jsonDecode(<YOUR JSON STRING HERE>));
SomeClass-SomeClass=SomeClass.fromJson(jsonDecode());