在Flutter/Dart中,如果JSON数组中没有名称/键,可以使用List
来序列化/解析嵌套的JSON数组。
序列化(将Dart对象转换为JSON字符串)可以使用jsonEncode()
函数,该函数接受一个Dart对象作为参数,并返回对应的JSON字符串。
解析(将JSON字符串转换为Dart对象)可以使用jsonDecode()
函数,该函数接受一个JSON字符串作为参数,并返回对应的Dart对象。
对于嵌套的JSON数组,可以使用List
来表示。例如,假设有以下的JSON数组:
[
{"name": "John", "age": 25},
{"name": "Jane", "age": 30},
{"name": "Bob", "age": 35}
]
可以定义一个Dart类来表示每个对象:
class Person {
String name;
int age;
Person({this.name, this.age});
factory Person.fromJson(Map<String, dynamic> json) {
return Person(
name: json['name'],
age: json['age'],
);
}
Map<String, dynamic> toJson() {
return {
'name': name,
'age': age,
};
}
}
然后,可以使用jsonDecode()
函数将JSON字符串解析为Dart对象的列表:
String jsonString = '[{"name": "John", "age": 25}, {"name": "Jane", "age": 30}, {"name": "Bob", "age": 35}]';
List<dynamic> jsonList = jsonDecode(jsonString);
List<Person> persons = jsonList.map((json) => Person.fromJson(json)).toList();
类似地,可以使用jsonEncode()
函数将Dart对象的列表序列化为JSON字符串:
List<Person> persons = [
Person(name: "John", age: 25),
Person(name: "Jane", age: 30),
Person(name: "Bob", age: 35),
];
String jsonString = jsonEncode(persons.map((person) => person.toJson()).toList());
关于Flutter和Dart的更多信息,可以参考腾讯云的相关产品和文档:
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云