如何解决错误“ _InternalLinkedHashMap”不是“字符串”类型的子类型

时间:2020-03-18 19:29:01

标签: json flutter

我有json对象寄存器,我的用户和令牌不正确。因此,在make寄存器中,我需要保存令牌和id ..我可以保存该令牌,但id不能,这表明我出错了

'_ InternalLinkedHashMap'不是类型的子类型 '字符串'

因此,我需要在保存该ID后访问该用户 …我该怎么办

这是我的json

{
    "success": true,
    "user": {
        "name": "ahmed",
        "phone": "203025628",
        "password": "$2y$10$ksxsdQvsnwkgiAa2iBy8yumlMLC.gEfeKlBIIpNhGIGgX0.MoWyfO",
        "updated_at": "2020-03-18 18:01:09",
        "created_at": "2020-03-18 18:01:09",
        "id": 562
    },
    "token": "Example token ………. "
}

功能保存和功能寄存器API

  _save(String token) async {
    final prefs = await SharedPreferences.getInstance();

    final key = 'user';

    final value = user;

    prefs.setString(key, value);

 }




regsiterdata(body) async {
   String url ='register';
   String fullURL = Serveurl+url;


   final response = await http.post(fullURL,body:body,
     headers: {
       'Accept':'application/json'
     },
   );

   status = response.body.contains('error');

   var data = json.decode(response.body);

   if (status) {
     print('data: ${data[response.statusCode]}');
     print('data: ${data["error"]}');

   } else {


     _save(data["user"]);

   }

1 个答案:

答案 0 :(得分:0)

您尝试在需要使用Map的地方使用String。您应该告诉我们此异常指向的行。在那里,使用以下代码将地图转换为字符串:

    final value = jsonEncode(user);

https://api.flutter.dev/flutter/dart-convert/jsonEncode.html