我们如何在 Flutter 应用程序中解析 json 响应的内部节点?

How can we parse inner node of json response in Flutter app?

我收到了这个回复

"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 个左右的节点。我不知道如何解析以获取国家/地区名称?

这是一个可能的解决方案。您必须使用 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']);
  }
}

'dart:convert' 适用于简单的情况。

但是当您需要真正的灵活性和更少的样板代码时,我建议改用这个库 https://github.com/k-paxian/dart-json-mapper