jsonDecode()返回字符串而不是列表

时间:2019-07-20 02:38:36

标签: json flutter dart codec

我在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>'

0 个答案:

没有答案