当键未知时,使用json_serializable解析JSON-Map到对象

enxuqcxy  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(114)

我想反序列化以下格式的http响应。

{
 "12-34": "some value",
 "45-67": "another value",
 ...
}

如果我不知道键和从后端返回的键的数量,我不知道如何创建一个带有json_serializable注解的DTO类。所以在这个DTO类中,我不能创建保存值的变量。
是否可以使用json_serializable注解创建一个只包含引用的map的DTO类,或者我可以使用具有以下结构的类

@JsonSerializable()
class ResponseState {
  String number;
  String message;
 
  factory ResponseState.fromJson(Map<String, dynamic> json) => _$ResponseStateFromJson(json)
}

但是我如何将JSON解析为this对象的列表呢?

dffbzjpn

dffbzjpn1#

从你的问题中看不太清楚,但是如果你有一个JSON对象包含任意键,值为ResponseState,你可以使用Map.map

final responseStates = (json as Map<String, dynamic>)
    .map((key, responseStateJson) => MapEntry(key, ResponseState.fromJson(responseStateJson)));

相关问题