【问题标题】:Convert JSON data to List<Map<String, dynamic>>将 JSON 数据转换为 List<Map<String, dynamic>>
【发布时间】:2021-09-03 16:23:42
【问题描述】:

我在将 JSON 数据转换为 List&lt;Map&lt;String, dynamic&gt;&gt; 时遇到问题。

rawJson =
        '[{"value":"1","label":"red"}, {"value":"2","label":"Green"}, {"value":"3","label":"Yellow"}]';

此数据需要转换为List&lt;Map&lt;String, dynamic&gt;&gt;

以下代码可以运行,但需要帮助。

List<Map<String, dynamic>> _items = [
    {
      'value': '1',
      'label': 'Red',
    },
    {
      'value': '2',
      'label': 'Green',
    },
    {
      'value': '3',
      'label': 'Yellow',
    },
  ];

【问题讨论】:

  • 我不明白你的问题,你的代码工作正常。你想要什么?

标签: json flutter dart


【解决方案1】:

你需要像这样转换你的 json:

var rawJson = '[{"value":"1","label":"red"}, {"value":"2","label":"Green"}, {"value":"3","label":"Yellow"}]';

List<Map<String, dynamic>> output = (json.decode(rawJson) as List).cast();
// or
List<Map<String, dynamic>> output = List.from(json.decode(rawJson) as List);

【讨论】:

    【解决方案2】:

    这可能是您正在寻找的:

      var rawJson =
          '[{"value":"1","label":"red"}, {"value":"2","label":"Green"}, {"value":"3","label":"Yellow"}]';
    
      var iterableResult = (jsonDecode(rawJson) as List<dynamic>).map((element) =>
          {"value": int.parse(element['value']), "label": element['label']});
      var listResult = iterableResult.toList();
      print(listResult); // prints [{value: 1, label: red}, {value: 2, label: Green}, {value: 3, label: Yellow}]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 2021-05-20
      • 2020-09-04
      • 2020-06-02
      • 2021-11-11
      • 1970-01-01
      相关资源
      最近更新 更多