如何解码此响应正文?

时间:2019-01-21 21:03:01

标签: json http dart flutter decode

我从http推送获得了此响应正文

  

“ {” identifier“:” 00000000-0000-0000-0000-00000000000“}”

我想将000000 ...部分作为字符串获取

那是我代码的相关部分

.. async { 
    await http
          .post(Uri.encodeFull(mainURL + registrEndPoint + _stuff))
          .then((res) {
        if (res.statusCode == 202) {  
        Map _body = jsonDecode(res.body); 
                           // I checked debugging, the respons boy is ok
        String _id =_body['identifier'];
        return _id;
}...

我相信我在“映射”中缺少某些内容
我怀疑组合'quote-curlyBraces-quote' 打败我的jsonDecode;

有什么建议吗?

预先感谢

2 个答案:

答案 0 :(得分:2)

通过查看dart:convert文档,您会看到jsonDecode()返回一个 Map<String, dynamic>,这意味着直到运行时您才知道这些值的类型。

Map<String, dynamic> body = jsonDecode(jsonString);
print('Howdy, ${body['identifier']}!');

答案 1 :(得分:0)

我解决了添加此行的问题

  

字符串_body = res.body;

如下所述

await http
        .post(Uri.encodeFull(mainURL + registrEndPoint + _qr))
        .then((res) {
      if (res.statusCode == 202) {
        String _body = res.body;   //<--- HERE!
        Map _json = jsonDecode(_body);
        String _id = _json['identifier'];
        return _id ;
    });

我希望这种解决方案可以对处于相同情况的其他人有所帮助。 谢谢大家的帮助!