首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振错误:类型“AddressInfo”不是类型类型“String”的子类型

颤振错误:类型“AddressInfo”不是类型类型“String”的子类型
EN

Stack Overflow用户
提问于 2018-12-31 20:29:17
回答 1查看 1.3K关注 0票数 0

我创建了一个模型类,并将其转发到put api。但它显示了一个错误

代码语言:javascript
复制
type 'AddressInfo' is not a subtype of type 'String' in type cast

类被正确序列化,我检查了在http请求期间发生的map.This错误的输出。

模型类

代码语言:javascript
复制
@JsonSerializable()
class AddressInfo{
  String city;
  List<String> operationAreas=new List();

  AddressInfo(
      this.city,
      this.operationAreas
      );

  factory AddressInfo.fromJson(Map<String, dynamic> json) => _$AddressInfoFromJson(json);
  Map<String, dynamic> toJson() => _$AddressInfoToJson(this);
}

API调用

代码语言:javascript
复制
Map input = addressinfo.toJson();
    String jsonData = json.encode(input);
    debugPrint("API CALLING json" + jsonData);

    http.Response response = await
    http.put(Apis.SIGNUP,
        body: input ); // post api call

错误

代码语言:javascript
复制
 type 'AddressInfo' is not a subtype of type 'String' in type cast
E/flutter ( 8969): #0      CastMap.forEach.<anonymous closure> (dart:_internal/cast.dart:286:25)
E/flutter ( 8969): #1      __InternalLinkedHashMap&_HashVMBase&MapMixin&_LinkedHashMapMixin.forEach (dart:collection/runtime/libcompact_hash.dart:370:8)
E/flutter ( 8969): #2      CastMap.forEach (dart:_internal/cast.dart:285:13)
E/flutter ( 8969): #3      mapToQuery (package:http/src/utils.dart:17:7)
E/flutter ( 8969): #4      Request.bodyFields= (package:http/src/request.dart:128:17)
E/flutter ( 8969): #5      BaseClient._sendUnstreamed (package:http/src/base_client.dart:163:17)
E/flutter ( 8969): <asynchronous suspension>
E/flutter ( 8969): #6      BaseClient.put (package:http/src/base_client.dart:76:7)
E/flutter ( 8969): #7      put.<anonymous closure> (package:http/http.dart:94:16)
E/flutter ( 8969): #8      _withClient (package:http/http.dart:166:20)
E/flutter ( 8969): <asynchronous suspension>
E/flutter ( 8969): #9      put (package:http/http.dart:93:5)
E/flutter ( 8969): #10     signup (package:careio_cross_platform/screens/PricingSelectionScreen.dart:175:5)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-31 21:08:15

代之以:

代码语言:javascript
复制
http.put(Apis.SIGNUP,
    body: input ); 

通过这一点:

代码语言:javascript
复制
http.put(Apis.SIGNUP,
    body: json.encode(input) ); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53991193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档