我试图在JsonOject库的帮助下解析一些JSON.我收到以下异常:
Exception: type 'List' is not a subtype of type 'Map' of 'value'.
Run Code Online (Sandbox Code Playgroud)
我的代码:
class MyList extends JsonObject implements List {
MyList();
factory MyList.fromString(String jsonString) {
return new JsonObject.fromJsonString(jsonString, new MyList());
}
}
class MyResult extends JsonObject {
num Dis;
int Flag;
MyProduct Obj;
}
class MyProduct extends JsonObject {
int ID;
String Title;
}
Run Code Online (Sandbox Code Playgroud)
我称之为:
var testJson = """
[{"Dis":1111.1,"Flag":0,"Obj":{"ID":1,"Title":"Volvo 140"}},
{"Dis":2222.2,"Flag":0,"Obj":{"ID":2,"Title":"Volvo 240"}}]
""";
MyList list = new MyList.fromString(testJson);
//I want to be able to do something like this.
//print(list[0].Obj.Title);
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
我已经更新了我的JsonObject github repo来修复这个bug.我还添加了一个传递单元测试来重现这一点.
您需要运行pub update
才能获得最新版本的库.
以下代码现在有效:
import 'package:json_object/json_object.dart';
void main() {
var testJson = """
[{"Dis":1111.1,"Flag":0,"Obj":{"ID":1,"Title":"Volvo 140"}},
{"Dis":2222.2,"Flag":0,"Obj":{"ID":2,"Title":"Volvo 240"}}]""";
MyList list = new MyList.fromString(testJson);
//I want to be able to do something like this.
print(list[0].Obj.Title); // <- now prints "Volvo 140"
}
class MyList extends JsonObject implements List {
MyList();
factory MyList.fromString(String jsonString) {
return new JsonObject.fromJsonString(jsonString, new MyList());
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2751 次 |
最近记录: |