【问题标题】:Flutter/Dart Json exceptionFlutter/Dart Json 异常
【发布时间】:2020-06-13 09:12:14
【问题描述】:

我在处理 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,但由于某种原因引发异常,所以我不知道我在做什么错

【问题讨论】:

    标签: android json flutter dart


    【解决方案1】:

    检查你的json文件末尾是否有多余的逗号,它存在,删除它

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2021-01-03
        • 2019-12-31
        • 1970-01-01
        • 2021-11-11
        • 2020-02-04
        • 2020-11-25
        • 2018-09-03
        • 2021-07-10
        • 2022-01-09
        相关资源
        最近更新 更多