gpt4 book ai didi

json - dart中的NosuchMethod用于JSON.decode

转载 作者:行者123 更新时间:2023-12-03 04:17:00 25 4
gpt4 key购买 nike

我正在尝试从dart文件中解析JSON。我设法读取并打印了文件,但是当我尝试将其转换为JSON时,它将引发错误。

file.dart:

import 'dart:convert' as JSON;
import 'dart:io';

main() {
final jsonAsString = new File('./text.json').readAsString().then(print); //Successful printing of json
final json = JSON.decode(jsonAsString);


print('$json');
}

错误:
Unhandled exception:
NoSuchMethodError: No top-level method 'JSON.decode' declared.
Receiver: top-level
Tried calling: JSON.decode(Instance of '_Future')
#0 NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:196)
#1 main (file:///Users/ninanjohn/Trials/dartTrials/stubVerifier.dart:7:15)
#2 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:265)
#3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)

我在这里想念或做错了什么?

最佳答案

首先,在导入dart:convert库时,您给它提供了一个名为JSON的别名。这意味着您必须像这样使用它;

JSON.JSON.decode(jsonString);

我认为您想使用 show而不是 as。有关更多详细信息,请参见 this SO问题。

另一个问题是这条线。
final jsonAsString = new File('./text.json').readAsString().then(print);

您实际上并没有为该变量分配 String,因为 .then()方法返回了 Future

要么同步读取文件;要么同步读取文件。
final jsonAsString = new File('./text.json').readAsStringSync();
print(jsonAsString);
final json = JSON.decode(jsonAsString);
print('$json');

或将其更改为...
new File('./text.json').readAsString().then((String jsonAsString) {
print(jsonAsString);
final json = JSON.decode(jsonAsString);
print('$json');
});

关于json - dart中的NosuchMethod用于JSON.decode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44738461/

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