我们如何在 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
我收到了这个回复
"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