我试图将build_value和json_serializable结合起来,解析从服务器到模型类的json响应。
以下是依赖项:
built_collection: ^4.0.0
built_value: ^6.1.4
dev_dependencies:
build_runner: ^1.0.0
built_value_generator: ^6.1.4
json_serializable: ^1.4.0
下面是我编写的代码
abstract class UserData implements Built<UserData, UserDataBuilder>{
String get user_first_name;
String get user_last_name;
String get user_mobile;
String get email;
String get user_type;
Company get company;
UserType get type;
UserData._();
factory UserData([updates(UserDataBuilder b)]) = _$UserData;
static Serializer<UserData> get serializer => _$userDataSerializer;
}
abstract class Company implements Built<Company, CompanyBuilder>{
String get id;
Company._();
factory Company([updates(CompanyBuilder b)]) = _$Company;
static Serializer<Company> get serializer => _$companySerializer;
}
abstract class UserType implements Built<UserType, UserTypeBuilder>{
String get id;
UserType._();
factory UserType([updates(UserTypeBuilder b)]) = _$UserType;
static Serializer<UserType> get serializer => _$userTypeSerializer;
}
序列化器类代码:
@SerializersFor(const [
UserData
])
Serializers serializers = _$serializers;
Serializers standardSerializers =
(serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
以下是我从服务器得到的响应。
{
"user": {
"id": "505d27b0-acaa-11e8-b916-21359608417b",
"email": "example@gmail.com",
"user_first_name": "Pankaj",
"user_last_name": "P",
"user_dob": null,
"active_status": 1,
"user_region_id": null,
"user_base_currency": "USD",
"user_address": null,
"is_god_user": 0,
"is_super_user": 0,
"profile": null,
"advanced_search": 0,
"region": null,
"company": {
"id": "24e311f0-acaa-11e8-8750-8de299c7797b",
"company_name": "SHPR A",
"company_address": null,
"company_logo": "",
"company_constitution": "pvt_ltd",
"company_email": "shpra@mail.com",
"state": null,
"country": null,
"postal_code": null,
"date_of_establishment": null,
"number_of_employees": null,
"company_turnover": null,
"vendor_id": null
},
"type": {
"id": "5eeebe55-fdf4-11e7-81f1-ac7ba173bed6",
"user_type_code": "11",
"user_type_name": "ADMIN",
"user_category": "SHIPPER"
}
}
}
最后,我尝试使用以下代码行进行解析
serializers.deserializeWith(UserData.serializer, json.decode(response.body))
但是我得到以下错误
failed due to: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Iterable<dynamic>' in type cast
请说明可能导致此问题的原因。
堆栈跟踪可以告诉您错误在哪里,因此如果您有错误,它可能会很有用。
在某个时候,您正在分配一个Map
所提供的代码中没有假定
Iterable的内容
那么,您确定您拥有的JSON输入文本是
JSON_serializable
解码器的正确格式吗?(我对那个包裹不熟悉,所以只能猜测)。
我也面临着同样的问题,替换
serializers.deserializeWith(UserData.serializer, json.decode(response.body))
具有
standardSerializers.deserializeWith(UserData.serializer, json.decode(response.body))
我有错误从标题时试图这样做 > 我创建了@JsonSerialiazable()类来处理json 然后,在调用http时。get(),我执行以下操作: map变量如下所示: 当调用$MyResponseFromJson(json)时,当它试图从我的响应中执行(json['a']as List)时,它会给出一个错误。g、 构建运行程序生成的dart文件。 我如何修复错误? 谢啦
虽然这个问题已经被问了几次,但我没有从我看到的那些人那里得到帮助。所以就这样, 我有一个模拟json文件在我的资产文件夹: 这是: 这里是: 如您所见,我希望在页面加载后立即获取数据,并将所述数据保存在列表中,然后可以在中使用。但每次加载屏幕时,我都会出现以下错误: 我接着看了一些教程,完全忽略了与我不想要的模型相关的任何东西。我错过了什么?我需要做什么才能在一个列表中得到结果,然后在网格视图中使
在存储到本地数据库之前,将字符串转换为对象的正确方法是什么? 这是的输出: 我试图将其转换为CreatedBy对象 创造的 这里是我的本地表列 错误
如果flatter中存在列表,是否会处理列表映射? 在上面的类中,我们需要手动将json转换为电影列表吗?
这里是我转换json响应的地方,我只想获取一些响应并在我的应用程序上显示, 错误消息 Json回应: PNLDATA类
我是颤振初学者。我得到这样的JSON响应时出错。 我一直在论坛上寻找这个问题,我发现是这样的。 但我不懂如何编写函数。这是我的密码。 还有像这样的错误。 我很抱歉问了同样的问题,因为我不明白