【问题标题】:Dart How To parse JSON With Unique Key, Value PairsDart 如何使用唯一键、值对解析 JSON
【发布时间】:2018-11-16 23:54:27
【问题描述】:

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

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

【问题讨论】:

    标签: json dictionary dart


    【解决方案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)。 我确信还有更多方法可以访问所有键和值。

    您如何处理键和值取决于您,它只是一张地图。

    【讨论】:

      【解决方案2】:

      最小的 Dart 程序来转换一个 json 字符串:

      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());
      }
      

      【讨论】:

      • 我已经解码了 Jason。我说的是用它制作物体。
      【解决方案3】:

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

      应该是评论,但我现在不能添加 cmets。

      【讨论】:

        猜你喜欢
        • 2021-02-19
        • 1970-01-01
        • 2021-11-12
        • 2019-07-16
        • 2019-01-29
        • 2021-08-29
        • 1970-01-01
        • 2022-01-09
        • 1970-01-01
        相关资源
        最近更新 更多