Как мне расшифровать это тело ответа? - PullRequest
0 голосов
/ 22 января 2019

У меня есть это тело ответа от http push

"{" Идентификатор ":" 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 голосов
/ 22 января 2019

Я решил проблему, добавив эту строку

String _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 ;
    });

Я надеюсь, что это решение поможет другим в моей ситуации. Спасибо всем за помощь!

0 голосов
/ 22 января 2019

Посмотрев документацию dart: convert , вы увидите, что jsonDecode () возвращает Map<String, dynamic>, что означает, что вы не знаете типы значений до времени выполнения.

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