未处理的异常:FormatException:意外字符(在字符1处)<br />

时间:2019-08-21 17:28:54

标签: json flutter

我收到以下未处理的异常:

  

[ERROR:flutter / lib / ui / ui_dart_state.cc(148)]未处理的异常:FormatException:意外的字符(字符1)

     

E / flutter(7717):
     

E / flutter(7717):^

我认为JSON无效,但是我不知道如何修改它。谁能帮我吗?

String url ='http://192.168.0.177/proto/submit_wo.php';
  var res = await http.post(Uri.encodeFull(url),
  headers: {"Accept":"applicarion/json"},
  body:{
    "id": '3' ,
    "status_id": '1' ,
    "category_id": selectedCategory.toString() ,
    "title": titleController.text,
    "description": description,
  }
  );

  print(json.decode(res.body));

7 个答案:

答案 0 :(得分:1)

使用 Uri.encodeFull(url) 代替 Uri.parse(url)

当我遇到同样的问题时,这对我有用。

答案 1 :(得分:0)

尝试使用双引号“代替单引号

{     “ id”:“ 3”,     “ status_id”:“ 1”,     “ category_id”:“ selectedCategory.toString()”,     “ title”:“ titleController.text”,     “ description”:“ description”,   }

您可以尝试使用json here

答案 2 :(得分:0)

从res检查状态代码:

  if (res.statusCode == 200) {
    print(json.decode(res.body));
  } else {
    print(res.statusCode);
  }

我想那不行。

答案 3 :(得分:0)

您的客户端需要JSON,但服务器返回HTML。

答案 4 :(得分:0)

有同样的问题。我试图从baseurl获取数据,而不是从baseurl / products.json获取数据。所以最后,它返回了我html类型,而不是json类型。验证您的是否正确。

答案 5 :(得分:0)

1-有时是因为您在API链接之前放置了空白或符号,所以必须将其删除

2-确保它返回JSON格式,因为有时您应该使用此格式

Embedding

3-您应该使用字符依赖性

注意:如果您要解析JSON数据,则可能会出错

答案 6 :(得分:0)

我遇到了同样的问题,我不得不检查 PHP Api 中的数据是否为空。如果传入的数据例如 - if (!Empty ($ order)) - 不为空,则让条件起作用。这样我的问题就解决了。

$order = $db->select("SELECT * FROM orders ORDER BY orderId ASC");
$list = array ();
if(!empty($order) && $order->num_rows > 0) (
while($rowdata = $order->fetch_assoc()) (
//array_push($list, $rowdata);
$list[] = $rowdata;
}
}
$db->link->close();
header ('Content-Type: application / json; charset = utf-8');
echo json_encode ($list);
 
return;