【问题标题】:How to create JSON object in flutter?如何在颤振中创建 JSON 对象?
【发布时间】:2021-02-06 17:28:48
【问题描述】:

我正在开发一个应用程序,我想在其中填写注册表并将此数据传递给 API。我尝试了几乎所有的解决方案,但都没有解决这个问题。

我在填写表格后得到这种类型的数据

[
{Date of Birth of the Baby: 08/01/1997},
{Gender of the baby: male}, 
{Time of Birth of the Baby: 12.00 pm}, 
{Father's Name: Nnn}, 
{Mother's Name: Hbhh}, 
{Any Extra Details?: Bnn}
]

我想要这种类型的数据

 {
    "Date of Birth of the Baby": "08/01/1997",
    "Gender of the baby": "male",
    "Time of Birth of the Baby": "12.00 pm",
    "Father's Name": "Nnn",
    "Mother's Name": "Hbhh",
    "Any Extra Details?": "Bnn"
}

var fieldsData = []; 最终 myControllers = [];

 mydynamicData() {

    for (var i = 0; i <= widget.fieldData.length; i++) {
      fieldsData.add({
        widget.fieldData[i]['question'],
        myControllers[i].text != null || myControllers[i].text != ""
            ? myControllers[i].text
            : ""
      });

    }

    print("fieldsData:${fieldsData}");

  }

这是我的方法,我知道这个问题是由于 for 循环而发生的,但如果没有 for 循环,我无法获取所有字段数据。所以请帮忙。

【问题讨论】:

    标签: android ios json flutter dart


    【解决方案1】:

    我们在 Dart/Flutter 中将多种对象和列表转换为 JSON 字符串。使我们的工作变得简单的最重要的部分之一是 dart:convert 库的内置 jsonEncode() 函数。

    这里我们在tags 属性上使用map 来返回JSON 对象。然后,使用toList() 方法将映射结果转换为JSON objectList

    import 'dart:convert';
    
    main() {
      User user = User('bezkoder', 21);
      String jsonUser = jsonEncode(user);
      print(jsonUser);
    
      List<Tag> tags = [Tag('tagA', 3), Tag('tagB', 6), Tag('tagC', 8)];
      String jsonTags = jsonEncode(tags);
      print(jsonTags);
    
      Tutorial tutorial = Tutorial('Dart Tut#2', 'Tut#2 Description', user, tags);
      String jsonTutorial = jsonEncode(tutorial);
      print(jsonTutorial);
    }
    

    让我们在控制台查看结果,你会看到 JSON 字符串。

    {"title":"Dart Tut#2","description":"Tut#2 Description","author":{"name":"bezkoder","age":21},"tags":[{"name":"tagA","quantity":3},{"name":"tagB","quantity":6},{"name":"tagC","quantity":8}]}
    

    如果我们不使用作者和标签初始化Tutorial,如下代码。

    import 'dart:convert';
    
    main() {
      Tutorial tutorial = Tutorial('Dart Tut#3', 'Tut#3 Description');
      String jsonTutorial = jsonEncode(tutorial);
      print(jsonTutorial);
    }
    

    【讨论】:

      【解决方案2】:

      进口:

      import 'dart:convert';
      

      那么你可以使用:

      json.encode(fieldsData);
      

      由于您有一个对象列表,因此可能需要在列表中创建一个 for,为每个项目调用 json.encode,然后对结果进行编码。

      【讨论】:

      • [ {"婴儿出生日期":"08/01/1996"}, {"婴儿性别":""}, {"婴儿出生时间": "12.99pm"}, {"Father's Name":"Nnn"}, {"Mother's Name":"Ggg"}, {"Any Extra Details?":"Bhhh"} ] 它提供了这种类型的数据,但我没有不想要花括号,就像我只想要 [{ "" : "" }]
      • 如果您有任何想法,请告诉我
      • 您有一个对象列表,您需要将您的列表转换为地图。
      猜你喜欢
      • 2021-09-25
      • 2020-05-09
      • 2020-04-27
      • 2021-10-12
      • 2023-03-18
      • 2020-11-01
      • 2021-07-07
      • 2021-02-25
      • 2021-11-24
      相关资源
      最近更新 更多