我有错误从标题时试图这样做
>
{
"3dfb71719a11693760f91f26f4f79c3c": {
"a": {
"var1": {
"value": "8678468,4,2,2,0,0",
"time": 1544536734000
},
"var2": {
"value": "8678468,4,2,2,0,0",
"time": 1544536734000
},
...
},
"b": {
"var3": {
"value": "8678468,4,2,2,0,0",
"time": 1544536734000
},
...
},
"c": {
"var4": {
"value": "8678468,4,2,2,0,0",
"time": 1544536734000
},
...
}
},
"c91891522a8016fc8a097b9e405b118a": {
"a": {
...
},
"b": {
...
},
"c": {
...
}
}
}
我创建了@JsonSerialiazable()类来处理json
@JsonSeriazable()
class MyResponse {
final List<AType> a;
final List<BType> b;
final List<Ctype> c;
MyResponse(this.a, this.b, this.c);
factory MyResponse.fromJson(Map<String, dynamic> json) => _$MyResponseFromJson(json);
}
class AType {
final StringValueTime var1;
final StringValueTime var2;
...
AType(this.var1, this.var2, ...);
factory AType.fromJson(Map<String, dynamic> json) => $_ATypeFromJson(json);
}
然后,在调用http时。get(),我执行以下操作:
Map<String, dynamic> map = json.decode(response.body);
List<MyResponse> myObjects = List<MyResponse>();
final keys = map.keys;
keys.forEach((id) {
final MyResponse obj = MyResponse.fromJson(map[id]);
myOjects.add(obj);
});
map变量如下所示:
0: "3dfb71719a11693760f91f26f4f79c3c"
key: "3dfb71719a11693760f91f26f4f79c3c"
value: <Map (3 items)>
0: "a" <Map x items>
key: "a"
value: <Map x items>
1: "b" <Map x items>
2: "c" <Map x items>
1: "c91891522a8016fc8a097b9e405b118a"
当调用$MyResponseFromJson(json)时,当它试图从我的响应中执行(json['a']as List)时,它会给出一个错误。g、 构建运行程序生成的dart文件。
MyResponse _$MyResponseFromJson(Map<String, dynamic> json) {
return MyResponse(
(json['a'] as List)
?.map((e) =>
e == null ? null : AType.fromJson(e as Map<String, dynamic>))
?.toList(),
我如何修复错误?
谢啦
您的a
、b
和c
字段被键入为列表,但JSON在该位置没有列表,只有一个值(作为映射)。
所以,检查您是否确实希望字段是列表,或者它们是否应该只是元素类型的单个值。
我在@Irn的帮助下发现了我的问题。这门课应该是这样的
@JsonSeriazable()
class MyResponse {
final AType a;
final BType b;
final Ctype c;
MyResponse(this.a, this.b, this.c);
factory MyResponse.fromJson(Map<String, dynamic> json) => _$MyResponseFromJson(json);
}
class AType {
final StringValueTime var1;
final StringValueTime var2;
...
AType(this.var1, this.var2, ...);
factory AType.fromJson(Map<String, dynamic> json) => $_ATypeFromJson(json);
}
我试图将build_value和json_serializable结合起来,解析从服务器到模型类的json响应。 以下是依赖项: 下面是我编写的代码 序列化器类代码: 以下是我从服务器得到的响应。 最后,我尝试使用以下代码行进行解析 但是我得到以下错误 请说明可能导致此问题的原因。
当我运行我的代码时,它返回了错误:类型“Future”不是类型转换中“List”类型的子类型。我该如何修复它?它是在我从Firebase获取数据之前匹配引擎运行的?我试图将wait添加到List demoProfiles=getdata()作为wait List;但它返回错误。我真的是新手,这个问题已经困扰了我一整天。请帮帮我
我试图在Dart中反序列化一个非常复杂的JSON,但是我不知道出了什么问题。 当它尝试反序列化时,它向我显示了以下错误:“type'\u InternalLinkedHashMap” 有人知道发生了什么事吗? 这是我的密码:
在存储到本地数据库之前,将字符串转换为对象的正确方法是什么? 这是的输出: 我试图将其转换为CreatedBy对象 创造的 这里是我的本地表列 错误
如果flatter中存在列表,是否会处理列表映射? 在上面的类中,我们需要手动将json转换为电影列表吗?
我从Firestore示例中复制了一段代码: 但是我得到了这个错误 这里出了什么问题?