添加到自定义类中的列表,然后将其转换为 json String
Posted
技术标签:
【中文标题】添加到自定义类中的列表,然后将其转换为 json String【英文标题】:adding to a list inside a custom class, then convert it to json String 【发布时间】:2021-08-15 21:46:18 【问题描述】:我创建了这两个类以将列表保存在 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;
【问题讨论】:
检查是否有帮助:***.com/questions/61316208/… 您看到的错误是什么?你能从你使用Segments
的实际位置添加一些代码吗?
@dgilperez 我没有收到错误,因为我不知道该怎么做,我是编程新手,即使我应该也不懂链接中的内容。当我感觉聪明时,我会再试一次,谢谢你们的时间!
@DarShan ^^^^^^
【参考方案1】:
这行得通吗?
final list = Segments.fromJson(
segments: [
'chapter': '1',
'from': '1',
'to': '1',
,
'chapter': '2',
'from': '2',
'to': '2',
,
]
);
print(list.segments);
在第一步中,您使用包含列表的 json 实例化 Segments
类,然后访问实例中的 segments
列表。
之后你应该可以做到
list.toJson();
获取json列表。
最后,您始终可以像这样在List
上使用迭代器来返回每个Segment
:
list.segments.forEach((segment) => print(segment));
最后,我建议进行一些重命名,segments.segments
包含 Segment
的实例,这有点绕口令:)
【讨论】:
以上是关于添加到自定义类中的列表,然后将其转换为 json String的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将 GestureRecognizer 添加到自定义 UIView 子视图中的标签
将Json反序列化为Entity Framework无法将int转换为type
spring配置文件(application.propertiesapplication.ymlapplication.yaml))中的配置项加载到自定义类中的方法