当我尝试解析从 restful API 收到的 JSON 响应时,我收到一个错误为未处理异常:NoSuchMethodError: Class 'Response' has no instance method '[]。
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' has no instance method '[] 如何从响应中解析每个单独的值,如名称、密码、电话号码、结果、上传、用户类型? 我是 flutter dart 的新手,对 REST API 处理不太熟悉,有人能帮我实现这个吗??
答案 0 :(得分:1)
编辑:您需要使用 jsonDecode()
import 'dart:convert';
...
var data = jsonDecode(val);
print(data["result"]);
...
或
您可能没有正确创建对象。
检查这种类型的声明:
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:新关键字现在在 Dart 中是可选的。
我希望,这是您正在寻找的解决方案。