Flutter 将json字符串转换为json对象时出错
我正在使用Flutter 将json字符串转换为json对象时出错,flutter,Flutter,我正在使用Completer来监听onstatechanged,一切都很好,我得到了一个json响应,但我真正想做的是通过调用MediaData.fromJson(data),使用模型类将json字符串更改为json对象。。但我总是犯错误 这是我到目前为止所做的尝试 class mainController{ Future<MediaData> getdata() async{ final completer = Completer<MediaData>();
Completer
来监听onstatechanged
,一切都很好,我得到了一个json响应,但我真正想做的是通过调用MediaData.fromJson(data)
,使用模型类将json字符串更改为json对象。。但我总是犯错误
这是我到目前为止所做的尝试
class mainController{
Future<MediaData> getdata() async{
final completer = Completer<MediaData>();
final flutterWebViewPlugin = FlutterWebviewPlugin();
flutterWebViewPlugin.launch('https://www.instagram.com/picsart/?__a=1', hidden: true, userAgent: kAndroidUserAgent,);
flutterWebViewPlugin.onStateChanged.listen((viewState) async {
if (viewState.type == WebViewState.finishLoad) {
final data = await flutterWebViewPlugin.evalJavascript("document.documentElement.outerText");
completer.complete(MediaData.fromJson(json.decode(data)));
flutterWebViewPlugin.close();
}
});
return completer.future;
}
}
class主控制器{
Future getdata()异步{
最终完成者=完成者();
最终的FlatterWebViewPlugin=FlatterWebViewPlugin();
webviewplugin.launch('https://www.instagram.com/picsart/?__a=1'隐藏:true,用户代理:kAndroidUserAgent,);
WebViewPlugin.onStateChanged.listen((viewState)异步{
if(viewState.type==WebViewState.finishLoad){
最终数据=等待WebViewPlugin.evalJavascript(“document.documentElement.outerText”);
completer.complete(MediaData.fromJson(json.decode(data));
webviewplugin.close();
}
});
返回completer.future;
}
}
错误-
[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: type 'String' is not a subtype of type 'Map<String, dynamic>'
E/flutter (20186): #0 mainController.getdata.<anonymous closure> (package:igsavers/controller/mainController.dart:20:52)
E/flutter (20186): <asynchronous suspension>
E/flutter (20186):
[错误:flatter/lib/ui/ui\u dart\u state.cc(186)]未处理的异常:类型“String”不是类型“Map”的子类型
E/颤振(20186):#0 mainController.getdata
--这是我的模型原始代码…错误似乎在第20行
不要使用MediaData.fromJson(json.decode(data))
,而是尝试MediaData.fromJson(data)
json.decode
必须接收字符串
,但数据当前是映射
。然后,就不需要使用这些函数了。我在不久前发现。。。但编译器中仍然出现错误。。。请参阅错误屏幕快照我根据您新编辑的问题编辑了答案。请再次检查。然后就不需要json了。decode??删除json decode后,我在android studio中得到errorr-参数类型“String”无法分配给参数类型“Map”
数据的类型是什么?