Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 将json字符串转换为json对象时出错_Flutter - Fatal编程技术网

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”
数据的类型是什么?