Unhandled Exception: NoSuchMethodError: Class 'Response<dynamic>' has no instance method '[]'. flutter dart

Unhandled Exception: NoSuchMethodError: Class 'Response<dynamic>' has no instance method '[]'. flutter dart

当我尝试解析从 restful API 收到的 JSON 响应时,我得到一个错误,因为未处理的异常:NoSuchMethodError:Class 'Response' 没有实例方法 '[].

AuthService().addStaff(new_name, phno, uid, pasword).then((val) {
            print(val)
            print(val["result"]);

            //   if (val['result'] == "successfull") {}

addStaff 调用一个 API 并得到一个 JSON 响应,当我打印 val 值时,我得到 JSON 响应作为这个`

{"Name":"jj","password":"38b","phoneno":"77","result":"successfull","uploadid":"b","user_type":"staff"}

但是当我尝试解析每个单独的元素时说 val['result'],我得到一个异常错误说 Class 'Response' 没有实例方法 '[] 我如何从响应中解析每个单独的值,如名称、密码、phoneno、结果、上传、user_type? 我是 flutter dart 的新手,不太熟悉 REST API 处理,谁能帮我实现这个目标??

编辑:您需要解析 JSON 使用 jsonDecode()

import 'dart:convert';
...
    
var data = jsonDecode(val);
print(data["result"]);

...

jsonDecode() Documentation

您可能没有正确创建对象。

检查此类声明:

Foo obj; // wronge way of creating object
obj.method();

然后改成这个

Foo obj = Foo(); // Corret way of creating object
obj.method();

Foo obj = new Foo(); // Corret way of creating object
obj.method();

PS: new 关键字现在在 Dart 中是可选的。

Original Answer link

希望这就是您正在寻找的解决方案。