gpt4 book ai didi

json - 在 Dart 中使用 JsonObject 库解析 JSON 列表

转载 作者:行者123 更新时间:2023-12-01 10:57:24 25 4
gpt4 key购买 nike

我正在尝试借助 JsonOject 库解析一些 JSON。我收到以下异常:

 Exception: type 'List' is not a subtype of type 'Map' of 'value'.

我的代码:

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;
}

我这样调用它:

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);

我在这里做错了什么?

最佳答案

我已经更新了我的 JsonObject github repo修复这个错误。我还添加了一个 passing unit test重现了这一点。

您需要运行 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());
}
}

关于json - 在 Dart 中使用 JsonObject 库解析 JSON 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14462007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com