您的代码以及您尝试解析的字符串存在问题。我会尝试找出该字符串是在哪里生成的,或者如果您自己做,也可以发布该代码。
有效的 Json 在名称周围使用“”,在字符串周围使用“”。您的字符串在名称周围不使用任何内容,在字符串周围不使用 '' 。
如果将其粘贴到 DartPad 中,第一个将出错,而第二个将成功:
import 'dart:convert';
void main() {
JsonCodec codec = new JsonCodec();
try{
var decoded = codec.decode("[{id:1, text:'fdsf', completed: false},{id:2, text:'qwer', completed: true}]");
print("Decoded 1: $decoded");
} catch(e) {
print("Error: $e");
}
try{
var decoded = codec.decode("""[{"id":1, "text":"fdsf", "completed": false},{"id":2, "text":"qwer", "completed": true}]""");
print("Decoded 2: $decoded");
} catch(e) {
print("Error: $e");
}
}
您的代码的问题是您希望解码器直接解码到列表。它不会这样做;它将解码为dynamic
这恰好是一个List<dynamic>
谁的物品恰好是Map<String, dynamic>
.
See flutter的Json文档有关如何在 Dart 中处理 json 的信息。