繁体   English   中英

Flutter/Dart Json 异常

[英]Flutter/Dart Json exception

在 dart 中处理 Json 时遇到问题

 Future Search(String tags) async{
    final response = await http.get(baseURL + tags + "&limit=100",headers: {"Accept": "text/html,application/xml"});
    if (response.statusCode == 200) {
      final Xml2Json myTransformer = Xml2Json();
      // Parse a simple XML string
      myTransformer.parse(response.body);
      var uwu = myTransformer.toGData();
      List<dynamic> list = json.decode(uwu)["posts"]["post"];
      for (int i =0; i < list.length; i++){
        print(json.decode(list[i]["file_url"]));
      }
      return response.body;
    } else {
      throw Exception('Search Failed');
    }
    }

导致问题的行是print(json.decode(list[i]["file_url"]));

由于控制台日志显示,我有点困惑

E/flutter (13398): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: FormatException: Unexpected character (at character 1)
E/flutter (13398): https://img2.gelbooru.com/images/c6/45/c64561495096eac60f68d23e6437f213.png
E/flutter (13398): ^
E/flutter (13398): 
E/flutter (13398): #0      _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1394:5)
E/flutter (13398): #1      _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1261:9)
E/flutter (13398): #2      _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:926:22)
E/flutter (13398): #3      _parseJson (dart:convert-patch/convert_patch.dart:31:10)
E/flutter (13398): #4      JsonDecoder.convert (dart:convert/json.dart:495:36)
E/flutter (13398): #5      JsonCodec.decode (dart:convert/json.dart:153:41)
E/flutter (13398): #6      GelbooruHandler.Search (package:loli/libBooru/GelbooruHandler.dart:25:20)
E/flutter (13398): <asynchronous suspension>
E/flutter (13398): #7      main (package:loli/main.dart:14:8)
E/flutter (13398): #8      _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:239:25)
E/flutter (13398): #9      _rootRun (dart:async/zone.dart:1126:13)
E/flutter (13398): #10     _CustomZone.run (dart:async/zone.dart:1023:19)
E/flutter (13398): #11     _runZoned (dart:async/zone.dart:1518:10)
E/flutter (13398): #12     runZoned (dart:async/zone.dart:1502:12)
E/flutter (13398): #13     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:231:5)
E/flutter (13398): #14     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:19)
E/flutter (13398): #15     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
E/flutter (13398): 

如果您查看日志的第二行,它显然正确选择了文件 url,但由于某种原因引发异常,所以我不知道我做错了什么

检查您的 json 文件末尾是否有多余的逗号并且它存在,将其删除

在 for 循环中解码已经解码的 json 所以改变了

json.decode(list[i]["file_url"])list[i]["file_url"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM