Dart如何使用唯一键,值对解析JSON

时间:2018-11-16 23:54:27

标签: json dictionary dart

我正在解析一个包含多个键值对的JSON对象,但不确定如何从下面的JSON中提取对象。密钥总是根据GET请求而有所不同,因此我无法像往常一样使用json ['keyname']。为了从“ ccwms”返回键列表和相应的值(浮点数)列表,我需要什么样的功能?

    {
  "ccwms": {
    "frc118": 160.8076758518209,
    "frc1255": 15.257951313413884,
    "frc1296": 11.42077882954301,
    "frc7321": -161.58464745359254
  }
}

3 个答案:

答案 0 :(得分:1)

解析JSON之后,您将拥有一个带有字符串键和一些值的普通Dart Map。您可以通过多种方式来迭代地图,例如:

for (var key in map.keys) { doSomething(key, map[key]); }

for (var entry in map.entries) { doSomething(entry.key, entry.value); }

map.forEach(doSomething);

Map.keysMap.entriesMap.forEach)。 我确信还有更多访问所有键和值的方法。

键和值的操作完全取决于您,这只是一张地图。

答案 1 :(得分:-1)

用于转换json字符串的最小Dart程序:

import 'dart:convert';


main() {
  String source = """{"X":"RRRR","Y":"SSSS","ccwms": {
    "frc118": 160.8076758518209,
    "frc1255": 15.257951313413884,
    "frc1296": 11.42077882954301,
    "frc7321": -161.58464745359254
  }}""";
  dynamic target = JsonDecoder().convert(source);
  print ( source.toString());
}

答案 2 :(得分:-1)

这些键是随机的吗?我认为必须对键进行预定义设置,因为json是已存在对象的序列化,并且对象结构不能是随机的 希望我理解正确

应该是评论,但我现在无法添加评论。