Как мы можем проанализировать внутренний узел ответа json в приложении Flutter? - PullRequest
0 голосов
/ 28 марта 2020

У меня есть этот ответ

"countryitems": [
            {
                    "1": {
                            "ourid": 1,
                            "title": "Afghanistan",
                            "code": "AF",
                    },
                    "2": {
                            "ourid": 2,
                            "title": "Albania",
                            "code": "AL",
                    },
                    "3": {
                            "ourid": 3,
                            "title": "Algeria",
                            "code": "DZ",                        },
                    "4": {
                            "ourid": 4,
                            "title": "Angola",
                            "code": "AO",
                    }
           }
]

Для вопроса, я поставил только 4 узла, где на самом деле у меня 150 узлов. Я не понимаю, как я могу разобрать, чтобы получить названия стран?

Ответы [ 2 ]

2 голосов
/ 28 марта 2020

Вот возможное решение. Вы должны декодировать ответ с помощью jsonDecode и создать карту из ответа. Если вы перебираете карту, вы можете получить доступ к внутренним узлам.

import 'dart:convert';

var jsonString = 
""" 
{
  "countryitems": [
    {
      "1": {
        "ourid": 1,
        "title": "Afghanistan",
        "code": "AF"
      },
      "2": {
        "ourid": 2,
        "title": "Albania",
        "code": "AL"
      },
      "3": {
        "ourid": 3,
        "title": "Algeria",
        "code": "DZ"
      },
      "4": {
        "ourid": 4,
        "title": "Angola",
        "code": "AO"
      }
    }
  ]
}
""";

void main() {
  Map<String, dynamic> obj = json.decode(jsonString)['countryitems'][0];

  // print out all country names in obj
  for(int i = 1; i <= obj.length; i++) {
    print(obj['$i']['title']);
  }
}
0 голосов
/ 29 марта 2020

'dart: convert' хорош для простых случаев.

Но когда вам нужна настоящая гибкость и меньше шаблонов, я бы предложил использовать эту библиотеку вместо https://github.com/k-paxian/dart-json-mapper

...