json - 添加到自定义类中的列表,然后将其转换为 json String
问题描述
我创建了这两个类以将列表保存在 sharedpreferences 中。
我的问题:
- 如何访问列表并添加到列表中?我试过
Segments.segments
了,但没有用。 - 如何使用类将列表转换为json?
- 如何检索列表中的项目。
我看了很多例子和视频,但我还是不明白。
class Segment {
final String chapter;
final String from;
final String to;
Segment({this.chapter, this.from, this.to});
factory Segment.fromJson(Map<String, dynamic> json) {
return Segment(
chapter: json['chapter'],
from: json['from'],
to: json['to'],
);
}
Map<String, dynamic> toJson() {
return {
'chapter': chapter,
'from': from,
'to': to,
};
}
}
&
class Segments {
List<Segment> segments;
Segments({this.segments});
Segments.fromJson(Map<String, dynamic> json) {
if (json['segments'] != null) {
segments = [];
json['segments'].forEach((v) {
segments.add(new Segment.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.segments != null) {
data['segments'] = this.segments.map((v) => v.toJson()).toList();
}
return data;
}
}
解决方案
这行得通吗?
final list = Segments.fromJson({
segments: [
{
'chapter': '1',
'from': '1',
'to': '1',
},
{
'chapter': '2',
'from': '2',
'to': '2',
},
]
});
print(list.segments);
在第一步中,您Segments
使用包含列表的 json 实例化一个类,然后访问segments
实例中的列表。
之后你应该可以做
list.toJson();
获取json列表。
最后,您始终可以使用迭代器List
来返回 each Segment
:
list.segments.forEach((segment) => print(segment));
最后,我建议一些重命名,segments.segments
包含Segment
它的实例有点绕口令:)
推荐阅读
- c++ - CreateDepthStencilView() 失败
- ruby-on-rails - Rails 在删除父项时将子关联 ID 设置为 nil
- java - 即使返回的 ArrayList 不为空,广度优先搜索也会返回空异常指针
- python - 如何在多次运行代码时创建一个 SQLlite 行而不添加另一个相同的行?
- php - 在 Wordpress 子主题中排队多个样式表
- node.js - Nodejs将mongoDB连接对象传递给控制器
- reactjs - 传递 props 功能组件 react
- lmdb - 可以重新设置lmdb环境中命名数据库的最大数量吗?
- javascript - 用 JavaScript 逐渐改变不透明度不起作用
- docker - docker 容器上的 POST 的特定 Nginx 反向代理重定向问题