带有转义字符的Dart Decode JSON API响应

时间:2019-08-06 19:14:28

标签: flutter dart

我从node.js服务器获得以下API响应,但无法使用dart convert在我的dart-flutter中将其解码

{
    "result": "successful",
    "data": {
        "id": 12,
        "name": "supportedcountries",
        "value": "[{\"code\":\"BA\",\"name\":\"Bosnia & Herzegovina\",\"callingCodes\":[\"+387\"]},{\"code\":\"UG\",\"name\":\"Uganda\",\"callingCodes\":[\"+256\"]},{\"code\":\"CA\",\"name\":\"Canada\",\"callingCodes\":[\"+1\"]},{\"code\":\"AE\",\"name\":\"United Arab Emirates\",\"callingCodes\":[\"+971\"]},{\"code\":\"US\",\"name\":\"United States\",\"callingCodes\":[\"+1\"]},{\"code\":\"KE\",\"name\":\"Kenya\",\"callingCodes\":[\"+254\"]},{\"code\":\"GB\",\"name\":\"United Kingdom\",\"callingCodes\":[\"+44\"]}]",
        "secure": 0,
        "updated_at": "2018-10-13T14:20:05.000Z",
        "updated_by": null
    }
}

当我尝试使用json.decode对其进行解码时,出现以下错误:

Failed to load "/Applications/XAMPP/xamppfiles/htdocs/myapp/paytimeAfrica/paytime_africa/test/main.dart":
  Unexpected character (at character 2)
  {result: successful, data: {id: 12, name: supported_countries, value: [{"co...
   ^

  dart:convert                                                                                       JsonDecoder.convert
  test/main.dart 21:43

2 个答案:

答案 0 :(得分:0)

Unexpected character (at character 2) {result: successful,

它正在抱怨结果r,也许它需要看到一个“标记。即”结果”

在不看到代码的情况下,不确定如何将其馈送到解码器,但是可以在整个json字符串周围添加',或将“转换为\”,以免丢失引号。

答案 1 :(得分:0)

jsonobject的json动态

  var url = "..../shop/";
  http.get(url).then((res) {
    dynamic list=convert.jsonDecode(res.body);
    setState(() {
      for(var i=0;i<list.length;i++)
        {
          Datmodel_shop dp=new Datmodel_shop();
          dp.result=list['result'];

        }
    });
  });