json - Flutter:解析具有多个键的json响应
问题描述
我试图从这个 json 响应中获取这些键的值:
{
"pro": {
"groups": [
"1": {
"name": "Base",
"fields": [
{
"id": 3,
"value": {
"raw": "Name",
}
},
{
"id": 4,
"value": {
"raw": "avatar",
}
},
]
},
"2": {
"name": "Base",
"fields": [
{
"id": 6,
"value": {
"raw": "Name",
}
},
{
"id": 7,
"value": {
"raw": "avatar",
}
},
]
}
]
}
}
我可以得到值 "name": "Base"
json['pro']['groups']["1"]['name'],
但我无法获得关键“原始”的值。
如何获取键“原始”的值?
解决方案
的值fields
是一个列表,因此您将获得一个raw
值列表:
List<String> raw = json['pro']['groups']['1']['fields'].map((v) => v['value']['raw'];
此外,似乎组是一个数组,但作为一个对象?然后你可以做这样的事情:
List<String> raw = [];
Map<String, dynamic> groups = json['pro']['groups'];
for (var key in groups.keys) {
raw.add(groups[key]['fields'].map((v) => v['value']['raw']);
}
或者
List<String> raw = groups.keys.map((key) => groups[key]['fields'].map((v) => v['value']['raw']);
我还没有测试过代码,但希望它能按预期工作:)
推荐阅读
- reactjs - TypeScript Redux AnyAction 不接受 extraProps
- javascript - 为什么浏览器在需要的文本之前返回 undefined?
- matlab - Matlab 2016b:确定表达式的未分配符号函数
- prometheus - 如何使用 Prometheus 编写简单的 Pulsar 指标查询?
- mongodb - VPC peering下如何从外部连接到MongoDB Atlas?
- telegram-bot - 后台连续访问用户的实时位置
- docker - 如何检查两个容器是否正确链接?
- java - 无法在项目 spring-boot-keycloak 上执行目标 org.apache.maven.plugins:maven-clean-plugin:3.1.0:clean (default-clean)
- playframework - 如何配置 Ebean 集群?
- linux - 在 Linux 中使用 little endian 编译 PowerPC(e5500 系列)