gpt4 book ai didi

json - Dart json.decode 无法解码为 Map

转载 作者:行者123 更新时间:2023-12-03 02:44:40 25 4
gpt4 key购买 nike

我的代码:

import 'dart:convert';

String jsonString = '''{
"a": "g",
"b": "h",
"c": "j",
"d": "k"
}''';

Map<String, String> map = json.decode(jsonString);

得到错误:
Unhandled exception:
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Map<String, String>'
#0 main (file:///...)
#1 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:298:32)
#2 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:171:12)
Map<String, dynamic> map ...Map<String, Object> map ...在工作中。

我试图在最后为不同的 JSON 反序列化 Map<String, Map>,它给了我同样的错误,所以我决定首先使用基本的 Map<String, String> 来更好地理解我做错了什么

最佳答案

要确保将 JSON 转换为指定的值,请使用 Map.castFrom 方法。

所以你的代码变成

import 'dart:convert';

void main () {
String jsonString = '''
{
"a": "g",
"b": "h",
"c": "j",
"d": "k"
}''';

Map<String, String> map = Map.castFrom(json.decode(jsonString));
print(map);
}

请注意,如果类型不兼容,它将抛出。您应该始终考虑处理它。

关于json - Dart json.decode 无法解码为 Map<String, String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916715/

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