如何在颤振中创建 JSON 对象?
Posted
技术标签:
【中文标题】如何在颤振中创建 JSON 对象?【英文标题】:How to create JSON object in flutter? 【发布时间】: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 循环,我无法获取所有字段数据。所以请帮忙。
【问题讨论】:
【参考方案1】:我们在 Dart/Flutter 中将多种对象和列表转换为 JSON 字符串。使我们的工作变得简单的最重要的部分之一是 dart:convert
库的内置 jsonEncode()
函数。
这里我们在tags
属性上使用map
来返回JSON 对象。然后,使用toList()
方法将映射结果转换为JSON object
的List
。
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" ] 它提供了这种类型的数据,但我没有不想要花括号,就像我只想要 [ "" : "" ] 如果您有任何想法,请告诉我 您有一个对象列表,您需要将您的列表转换为地图。以上是关于如何在颤振中创建 JSON 对象?的主要内容,如果未能解决你的问题,请参考以下文章