我在dart中使用jsonDecode(jsonString),当用于存储在List中时,它在所有情况下(项目中的许多情况)都以字符串形式返回,没有任何说明。
我唯一能尝试的就是还原版本。我已经使用其他方法对代码进行了修改,但是它们是同一个库
import 'dart:convert';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
Future verifyData() async {
updateData();
verifyAuthenticator();
}
Future updateData() async {
}
Future verifyAuthenticator() async {
FlutterSecureStorage storage = new FlutterSecureStorage();
List<dynamic> aJson;
Map<String, dynamic> subJson;
storage.read(key: "authenticators").then((str) => {
print(jsonDecode(str).runtimeType),
aJson = jsonDecode(str),
aJson.forEach((dyn) => {
subJson = jsonDecode(jsonEncode(dyn)),
aJson.remove(dyn),
subJson.putIfAbsent("digits", () => 6),
subJson.putIfAbsent("period", () => 30),
aJson.add(jsonEncode(subJson)),
storage.write(key: "authenticators", value: jsonEncode(json))
})
});
}
我希望aJson列表可以填写,并且不会产生错误。实际输出是错误:
E/flutter (18253): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: type 'String' is not a subtype of type 'List<dynamic>'