在这篇文章中,我们将向您展示如何在 Flutter 和 Dart 中将映射、简单数组列表或对象列表转换为 JSON 字符串。 您可能需要将数组列表或映射转换为 JSON 字符串以保存为字符串或作为应用程序上的字符串发送到服务器。
Import dart:convert:
import 'dart:convert';
您需要这个库来实现 JSON 函数。
如何将map转换为 JSON 字符串:
var ages = {"John":26, "Krishna": 34, "Rahul":67, "Maichel": 33};
String jsonstringmap = json.encode(ages);
print(jsonstringmap);
//output: {"John":26,"Krishna":34,"Rahul":67,"Maichel":33}
如何将数组转换为 JSON 字符串:
List<String> names = ["John", "Krisna", "Rahul", "Maichel"];
String jsonstring = json.encode(names);
print(jsonstring);
//output: ["John","Krisna","Rahul","Maichel"]
将对象数组列表转换为 JSON 字符串:
class Student{
String rollno, name, age;
List<int> marks;
Student({
required this.rollno,
required this.name,
required this.age,
required this.marks
});
}
List<Student> students = [
Student(name: "John", rollno: "12", age: "26", marks: [23, 45, 35]),
Student(name: "Krishna", rollno: "12", age: "26", marks: [23, 45, 35]),
Student(name: "Rahul", rollno: "12", age: "26", marks: [23, 45, 35])
];
var studentsmap = students.map((e){
return {
"name": e.name,
"rollno": e.rollno,
"age": e.age,
"marks": e.marks
};
}).toList(); //convert to map
String stringstudents = json.encode(studentsmap);
print(stringstudents);
这段代码的输出:
/*--- output ----
[{
"name": "John",
"rollno": "12",
"age": "26",
"marks": [23, 45, 35]
}, {
"name": "Krishna",
"rollno": "12",
"age": "26",
"marks": [23, 45, 35]
}, {
"name": "Rahul",
"rollno": "12",
"age": "26",
"marks": [23, 45, 35]
}]
*/
或者,
class Student{
String rollno, name, age;
List<int> marks;
Student({
required this.rollno,
required this.name,
required this.age,
required this.marks
});
Map<String, dynamic> toMap() {
return {
'name': this.name,
'rollno': this.rollno,
'age': this.age,
'marks': this.marks,
};
}
static dynamic getListMap(List<dynamic> items) {
if (items == null) {
return null;
}
List<Map<String, dynamic>> list = [];
items.forEach((element) {
list.add(element.toMap());
});
return list;
}
}
List<Student> students = [
Student(name: "John", rollno: "12", age: "26", marks: [23, 45, 35]),
Student(name: "Krishna", rollno: "12", age: "26", marks: [23, 45, 35]),
Student(name: "Rahul", rollno: "12", age: "26", marks: [23, 45, 35])
];
var studentsmap1 = Student.getListMap(students);
//convert to map
String stringstudents1 = json.encode(studentsmap);
print(stringstudents1);
与上面的输出相同。
这样,您就可以在 Flutter 和 Dart 中将 Arraylist、Arraylist of Objects、Map 转换为 JSON 字符串