Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[How to use] Error: The getter 'Dynamic' isn't defined #149

Closed
hanxiaofeng opened this issue Aug 22, 2023 · 15 comments
Closed

[How to use] Error: The getter 'Dynamic' isn't defined #149

hanxiaofeng opened this issue Aug 22, 2023 · 15 comments

Comments

@hanxiaofeng
Copy link

Platforms

dart, Android

Description

image

自动生成的代码找不到Dynamic?

My code

import 'dart:ffi';

/// data : {"curPage":1,"datas":[{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27057,"isAdminAdd":false,"link":"https://juejin.cn/post/7269049833363963923","niceDate":"1天前","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692544255000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692544255000,"shareUser":"淡然一笑","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"AndroidAGP8.1.0和JDK 17迁移之旅","type":0,"userId":30962,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27056,"isAdminAdd":false,"link":"https://blog.csdn.net/weixin_46039528/article/details/132391529","niceDate":"1天前","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692512517000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692512517000,"shareUser":"qfh","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android源码解析--享元设计模式,handler消息传递机制(基于Android API 33 SDK分析)","type":0,"userId":128443,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"张鸿洋","canEdit":false,"chapterId":543,"chapterName":"Android技术周报","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27047,"isAdminAdd":false,"link":"https://www.wanandroid.com/blog/show/3556","niceDate":"2天前","niceShareDate":"2天前","origin":"","prefix":"","projectLink":"","publishTime":1692460800000,"realSuperChapterId":542,"selfVisible":0,"shareDate":1692461400000,"shareUser":"","superChapterId":543,"superChapterName":"技术周报","tags":[],"title":"Android 技术周刊 (2023-08-13 ~ 2023-08-20)","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27046,"isAdminAdd":false,"link":"https://juejin.cn/post/7268894037464367140","niceDate":"2天前","niceShareDate":"2天前","origin":"","prefix":"","projectLink":"","publishTime":1692452673000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692452673000,"shareUser":"pika","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Jni函数 Hook实战","type":0,"userId":133632,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27044,"isAdminAdd":false,"link":"https://juejin.cn/post/7268228858762870784","niceDate":"2023-08-18 10:34","niceShareDate":"2023-08-18 10:34","origin":"","prefix":"","projectLink":"","publishTime":1692326088000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692326088000,"shareUser":"张风捷特烈","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Flutter 3.13 组件更新 | 欢迎 Slivers 体系 5 位新成员","type":0,"userId":31634,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27043,"isAdminAdd":false,"link":"https://blog.csdn.net/weixin_46039528/article/details/132353252","niceDate":"2023-08-18 09:29","niceShareDate":"2023-08-18 09:29","origin":"","prefix":"","projectLink":"","publishTime":1692322165000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692322165000,"shareUser":"qfh","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android布局填充器--深入LayoutInflater一探究竟","type":0,"userId":128443,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":408,"chapterName":"鸿洋","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27059,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/iMIsvdS9x4k8J5Cgt8bnYg","niceDate":"2023-08-18 00:00","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692288000000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692580914000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/408/1"}],"title":"Gradle Task 系列完结,Task执行大剖析","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"Android群英传","canEdit":false,"chapterId":413,"chapterName":"Android群英传","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27060,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/viIygKw_oLgkuhMFW_gN5A","niceDate":"2023-08-18 00:00","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692288000000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692580933000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/413/1"}],"title":"Flutter性能揭秘之RepaintBoundary","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"郭霖","canEdit":false,"chapterId":409,"chapterName":"郭霖","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27061,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/oY7DgNMZwKs-bMqfUtRBkg","niceDate":"2023-08-18 00:00","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692288000000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692580945000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/409/1"}],"title":"Jetpack Compose中的debug调试","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":588,"chapterName":"gradle plugin 源码分析","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27038,"isAdminAdd":false,"link":"https://juejin.cn/post/7219988638050369594","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287437000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287437000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Kotlin Script加载流程","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":588,"chapterName":"gradle plugin 源码分析","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27037,"isAdminAdd":false,"link":"https://juejin.cn/post/7219925045228240954","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287428000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287428000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Groovy Script加载流程","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":589,"chapterName":"gradle 原理","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27036,"isAdminAdd":false,"link":"https://juejin.cn/post/7241492331954012221","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287417000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287417000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Task原理(执行篇)","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":589,"chapterName":"gradle 原理","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27035,"isAdminAdd":false,"link":"https://juejin.cn/post/7241492186919354405","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287409000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287409000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Task原理(并行篇)","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":589,"chapterName":"gradle 原理","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27034,"isAdminAdd":false,"link":"https://juejin.cn/post/7241492186919239717","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287400000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287400000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Task原理(Graph篇)","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27033,"isAdminAdd":false,"link":"https://juejin.cn/post/7267840969605382198","niceDate":"2023-08-17 18:18","niceShareDate":"2023-08-17 18:18","origin":"","prefix":"","projectLink":"","publishTime":1692267513000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692267513000,"shareUser":"淡然一笑","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android CameraX适配Android13的踩坑之路","type":0,"userId":30962,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":408,"chapterName":"鸿洋","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27041,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/ql-QpUzSc2Wv-GyDCBqHzw","niceDate":"2023-08-17 00:00","niceShareDate":"2023-08-18 09:17","origin":"","prefix":"","projectLink":"","publishTime":1692201600000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692321442000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/408/1"}],"title":"Android 13 媒体权限适配指南","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"郭霖","canEdit":false,"chapterId":409,"chapterName":"郭霖","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27042,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/DWaPe8Z0LrChyDRQ_oH7RQ","niceDate":"2023-08-17 00:00","niceShareDate":"2023-08-18 09:17","origin":"","prefix":"","projectLink":"","publishTime":1692201600000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692321458000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/409/1"}],"title":"内存泄漏大集结:安卓开发者不可错过的性能优化技巧","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27030,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s?__biz=MzA3ODQ5MTAwOQ==&mid=2448005277&idx=1&sn=857b5aa9d3f0e7500e60abbf2c202a2f&chksm=8b5cc473bc2b4d65f5cacf4e64a657a38cc18f6993b3d20cb345634c75e804baf20c2d698845#rd","niceDate":"2023-08-16 22:28","niceShareDate":"2023-08-16 22:28","origin":"","prefix":"","projectLink":"","publishTime":1692196113000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692196113000,"shareUser":"小海Poseidon","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"从LeakCanary看对象回收判断方法","type":0,"userId":88354,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":634,"chapterName":"京东云技术团队","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27029,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/Co8W6BAR0H_8P6NjQnWoLQ","niceDate":"2023-08-16 19:25","niceShareDate":"2023-08-16 19:25","origin":"","prefix":"","projectLink":"","publishTime":1692185105000,"realSuperChapterId":604,"selfVisible":0,"shareDate":1692185105000,"shareUser":"","superChapterId":605,"superChapterName":"大厂对外分享 - 学习路径","tags":[],"title":"京东金融Android瘦身探索与实践","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27020,"isAdminAdd":false,"link":"https://juejin.cn/post/7267477662360698895","niceDate":"2023-08-16 00:28","niceShareDate":"2023-08-16 00:28","origin":"","prefix":"","projectLink":"","publishTime":1692116913000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692116913000,"shareUser":"Taonce","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Jetpack Compose - 约束布局​ConstrainLayout解决复杂组合项","type":0,"userId":9695,"visible":1,"zan":0}],"offset":0,"over":false,"pageCount":728,"size":20,"total":14547}
/// errorCode : 0
/// errorMsg : ""

class ArticleListResult {
ArticleListResult({
Data? data,
num? errorCode,
String? errorMsg,}){
_data = data;
_errorCode = errorCode;
_errorMsg = errorMsg;
}

ArticleListResult.fromJson(dynamic json) {
_data = json['data'] != null ? Data.fromJson(json['data']) : null;
_errorCode = json['errorCode'];
_errorMsg = json['errorMsg'];
}
Data? _data;
num? _errorCode;
String? _errorMsg;
ArticleListResult copyWith({ Data? data,
num? errorCode,
String? errorMsg,
}) => ArticleListResult( data: data ?? _data,
errorCode: errorCode ?? _errorCode,
errorMsg: errorMsg ?? _errorMsg,
);
Data? get data => _data;
num? get errorCode => _errorCode;
String? get errorMsg => _errorMsg;

Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
if (_data != null) {
map['data'] = _data?.toJson();
}
map['errorCode'] = _errorCode;
map['errorMsg'] = _errorMsg;
return map;
}

}

/// curPage : 1
/// datas : [{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27057,"isAdminAdd":false,"link":"https://juejin.cn/post/7269049833363963923","niceDate":"1天前","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692544255000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692544255000,"shareUser":"淡然一笑","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"AndroidAGP8.1.0和JDK 17迁移之旅","type":0,"userId":30962,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27056,"isAdminAdd":false,"link":"https://blog.csdn.net/weixin_46039528/article/details/132391529","niceDate":"1天前","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692512517000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692512517000,"shareUser":"qfh","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android源码解析--享元设计模式,handler消息传递机制(基于Android API 33 SDK分析)","type":0,"userId":128443,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"张鸿洋","canEdit":false,"chapterId":543,"chapterName":"Android技术周报","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27047,"isAdminAdd":false,"link":"https://www.wanandroid.com/blog/show/3556","niceDate":"2天前","niceShareDate":"2天前","origin":"","prefix":"","projectLink":"","publishTime":1692460800000,"realSuperChapterId":542,"selfVisible":0,"shareDate":1692461400000,"shareUser":"","superChapterId":543,"superChapterName":"技术周报","tags":[],"title":"Android 技术周刊 (2023-08-13 ~ 2023-08-20)","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27046,"isAdminAdd":false,"link":"https://juejin.cn/post/7268894037464367140","niceDate":"2天前","niceShareDate":"2天前","origin":"","prefix":"","projectLink":"","publishTime":1692452673000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692452673000,"shareUser":"pika","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Jni函数 Hook实战","type":0,"userId":133632,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27044,"isAdminAdd":false,"link":"https://juejin.cn/post/7268228858762870784","niceDate":"2023-08-18 10:34","niceShareDate":"2023-08-18 10:34","origin":"","prefix":"","projectLink":"","publishTime":1692326088000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692326088000,"shareUser":"张风捷特烈","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Flutter 3.13 组件更新 | 欢迎 Slivers 体系 5 位新成员","type":0,"userId":31634,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27043,"isAdminAdd":false,"link":"https://blog.csdn.net/weixin_46039528/article/details/132353252","niceDate":"2023-08-18 09:29","niceShareDate":"2023-08-18 09:29","origin":"","prefix":"","projectLink":"","publishTime":1692322165000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692322165000,"shareUser":"qfh","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android布局填充器--深入LayoutInflater一探究竟","type":0,"userId":128443,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":408,"chapterName":"鸿洋","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27059,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/iMIsvdS9x4k8J5Cgt8bnYg","niceDate":"2023-08-18 00:00","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692288000000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692580914000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/408/1"}],"title":"Gradle Task 系列完结,Task执行大剖析","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"Android群英传","canEdit":false,"chapterId":413,"chapterName":"Android群英传","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27060,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/viIygKw_oLgkuhMFW_gN5A","niceDate":"2023-08-18 00:00","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692288000000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692580933000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/413/1"}],"title":"Flutter性能揭秘之RepaintBoundary","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"郭霖","canEdit":false,"chapterId":409,"chapterName":"郭霖","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27061,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/oY7DgNMZwKs-bMqfUtRBkg","niceDate":"2023-08-18 00:00","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692288000000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692580945000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/409/1"}],"title":"Jetpack Compose中的debug调试","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":588,"chapterName":"gradle plugin 源码分析","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27038,"isAdminAdd":false,"link":"https://juejin.cn/post/7219988638050369594","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287437000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287437000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Kotlin Script加载流程","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":588,"chapterName":"gradle plugin 源码分析","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27037,"isAdminAdd":false,"link":"https://juejin.cn/post/7219925045228240954","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287428000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287428000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Groovy Script加载流程","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":589,"chapterName":"gradle 原理","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27036,"isAdminAdd":false,"link":"https://juejin.cn/post/7241492331954012221","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287417000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287417000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Task原理(执行篇)","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":589,"chapterName":"gradle 原理","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27035,"isAdminAdd":false,"link":"https://juejin.cn/post/7241492186919354405","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287409000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287409000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Task原理(并行篇)","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":589,"chapterName":"gradle 原理","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27034,"isAdminAdd":false,"link":"https://juejin.cn/post/7241492186919239717","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287400000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287400000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Task原理(Graph篇)","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27033,"isAdminAdd":false,"link":"https://juejin.cn/post/7267840969605382198","niceDate":"2023-08-17 18:18","niceShareDate":"2023-08-17 18:18","origin":"","prefix":"","projectLink":"","publishTime":1692267513000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692267513000,"shareUser":"淡然一笑","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android CameraX适配Android13的踩坑之路","type":0,"userId":30962,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":408,"chapterName":"鸿洋","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27041,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/ql-QpUzSc2Wv-GyDCBqHzw","niceDate":"2023-08-17 00:00","niceShareDate":"2023-08-18 09:17","origin":"","prefix":"","projectLink":"","publishTime":1692201600000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692321442000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/408/1"}],"title":"Android 13 媒体权限适配指南","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"郭霖","canEdit":false,"chapterId":409,"chapterName":"郭霖","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27042,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/DWaPe8Z0LrChyDRQ_oH7RQ","niceDate":"2023-08-17 00:00","niceShareDate":"2023-08-18 09:17","origin":"","prefix":"","projectLink":"","publishTime":1692201600000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692321458000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/409/1"}],"title":"内存泄漏大集结:安卓开发者不可错过的性能优化技巧","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27030,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s?__biz=MzA3ODQ5MTAwOQ==&mid=2448005277&idx=1&sn=857b5aa9d3f0e7500e60abbf2c202a2f&chksm=8b5cc473bc2b4d65f5cacf4e64a657a38cc18f6993b3d20cb345634c75e804baf20c2d698845#rd","niceDate":"2023-08-16 22:28","niceShareDate":"2023-08-16 22:28","origin":"","prefix":"","projectLink":"","publishTime":1692196113000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692196113000,"shareUser":"小海Poseidon","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"从LeakCanary看对象回收判断方法","type":0,"userId":88354,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":634,"chapterName":"京东云技术团队","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27029,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/Co8W6BAR0H_8P6NjQnWoLQ","niceDate":"2023-08-16 19:25","niceShareDate":"2023-08-16 19:25","origin":"","prefix":"","projectLink":"","publishTime":1692185105000,"realSuperChapterId":604,"selfVisible":0,"shareDate":1692185105000,"shareUser":"","superChapterId":605,"superChapterName":"大厂对外分享 - 学习路径","tags":[],"title":"京东金融Android瘦身探索与实践","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27020,"isAdminAdd":false,"link":"https://juejin.cn/post/7267477662360698895","niceDate":"2023-08-16 00:28","niceShareDate":"2023-08-16 00:28","origin":"","prefix":"","projectLink":"","publishTime":1692116913000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692116913000,"shareUser":"Taonce","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Jetpack Compose - 约束布局​ConstrainLayout解决复杂组合项","type":0,"userId":9695,"visible":1,"zan":0}]
/// offset : 0
/// over : false
/// pageCount : 728
/// size : 20
/// total : 14547

class Data {
Data({
num? curPage,
List? datas,
num? offset,
bool? over,
num? pageCount,
num? size,
num? total,}){
_curPage = curPage;
_datas = datas;
_offset = offset;
_over = over;
_pageCount = pageCount;
_size = size;
_total = total;
}

Data.fromJson(dynamic json) {
_curPage = json['curPage'];
if (json['datas'] != null) {
_datas = [];
json['datas'].forEach((v) {
_datas?.add(Datas.fromJson(v));
});
}
_offset = json['offset'];
_over = json['over'];
_pageCount = json['pageCount'];
_size = json['size'];
_total = json['total'];
}
num? _curPage;
List? _datas;
num? _offset;
bool? _over;
num? _pageCount;
num? _size;
num? _total;
Data copyWith({ num? curPage,
List? datas,
num? offset,
bool? over,
num? pageCount,
num? size,
num? total,
}) => Data( curPage: curPage ?? _curPage,
datas: datas ?? _datas,
offset: offset ?? _offset,
over: over ?? _over,
pageCount: pageCount ?? _pageCount,
size: size ?? _size,
total: total ?? _total,
);
num? get curPage => _curPage;
List? get datas => _datas;
num? get offset => _offset;
bool? get over => _over;
num? get pageCount => _pageCount;
num? get size => _size;
num? get total => _total;

Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['curPage'] = _curPage;
if (_datas != null) {
map['datas'] = _datas?.map((v) => v.toJson()).toList();
}
map['offset'] = _offset;
map['over'] = _over;
map['pageCount'] = _pageCount;
map['size'] = _size;
map['total'] = _total;
return map;
}

}

/// adminAdd : false
/// apkLink : ""
/// audit : 1
/// author : ""
/// canEdit : false
/// chapterId : 502
/// chapterName : "自助"
/// collect : false
/// courseId : 13
/// desc : ""
/// descMd : ""
/// envelopePic : ""
/// fresh : false
/// host : ""
/// id : 27057
/// isAdminAdd : false
/// link : "https://juejin.cn/post/7269049833363963923"
/// niceDate : "1天前"
/// niceShareDate : "1天前"
/// origin : ""
/// prefix : ""
/// projectLink : ""
/// publishTime : 1692544255000
/// realSuperChapterId : 493
/// selfVisible : 0
/// shareDate : 1692544255000
/// shareUser : "淡然一笑"
/// superChapterId : 494
/// superChapterName : "广场Tab"
/// tags : []
/// title : "AndroidAGP8.1.0和JDK 17迁移之旅"
/// type : 0
/// userId : 30962
/// visible : 1
/// zan : 0

class Datas {
Datas({
bool? adminAdd,
String? apkLink,
num? audit,
String? author,
bool? canEdit,
num? chapterId,
String? chapterName,
bool? collect,
num? courseId,
String? desc,
String? descMd,
String? envelopePic,
bool? fresh,
String? host,
num? id,
bool? isAdminAdd,
String? link,
String? niceDate,
String? niceShareDate,
String? origin,
String? prefix,
String? projectLink,
num? publishTime,
num? realSuperChapterId,
num? selfVisible,
num? shareDate,
String? shareUser,
num? superChapterId,
String? superChapterName,
List? tags,
String? title,
num? type,
num? userId,
num? visible,
num? zan,}){
_adminAdd = adminAdd;
_apkLink = apkLink;
_audit = audit;
_author = author;
_canEdit = canEdit;
_chapterId = chapterId;
_chapterName = chapterName;
_collect = collect;
_courseId = courseId;
_desc = desc;
_descMd = descMd;
_envelopePic = envelopePic;
_fresh = fresh;
_host = host;
_id = id;
_isAdminAdd = isAdminAdd;
_link = link;
_niceDate = niceDate;
_niceShareDate = niceShareDate;
_origin = origin;
_prefix = prefix;
_projectLink = projectLink;
_publishTime = publishTime;
_realSuperChapterId = realSuperChapterId;
_selfVisible = selfVisible;
_shareDate = shareDate;
_shareUser = shareUser;
_superChapterId = superChapterId;
_superChapterName = superChapterName;
_tags = tags;
_title = title;
_type = type;
_userId = userId;
_visible = visible;
_zan = zan;
}

Datas.fromJson(dynamic json) {
_adminAdd = json['adminAdd'];
_apkLink = json['apkLink'];
_audit = json['audit'];
_author = json['author'];
_canEdit = json['canEdit'];
_chapterId = json['chapterId'];
_chapterName = json['chapterName'];
_collect = json['collect'];
_courseId = json['courseId'];
_desc = json['desc'];
_descMd = json['descMd'];
_envelopePic = json['envelopePic'];
_fresh = json['fresh'];
_host = json['host'];
_id = json['id'];
_isAdminAdd = json['isAdminAdd'];
_link = json['link'];
_niceDate = json['niceDate'];
_niceShareDate = json['niceShareDate'];
_origin = json['origin'];
_prefix = json['prefix'];
_projectLink = json['projectLink'];
_publishTime = json['publishTime'];
_realSuperChapterId = json['realSuperChapterId'];
_selfVisible = json['selfVisible'];
_shareDate = json['shareDate'];
_shareUser = json['shareUser'];
_superChapterId = json['superChapterId'];
_superChapterName = json['superChapterName'];
if (json['tags'] != null) {
_tags = [];
json['tags'].forEach((v) {

    _tags?.add(Dynamic.fromJson(v));
  });
}
_title = json['title'];
_type = json['type'];
_userId = json['userId'];
_visible = json['visible'];
_zan = json['zan'];

}
bool? _adminAdd;
String? _apkLink;
num? _audit;
String? _author;
bool? _canEdit;
num? _chapterId;
String? _chapterName;
bool? _collect;
num? _courseId;
String? _desc;
String? _descMd;
String? _envelopePic;
bool? _fresh;
String? _host;
num? _id;
bool? _isAdminAdd;
String? _link;
String? _niceDate;
String? _niceShareDate;
String? _origin;
String? _prefix;
String? _projectLink;
num? _publishTime;
num? _realSuperChapterId;
num? _selfVisible;
num? _shareDate;
String? _shareUser;
num? _superChapterId;
String? _superChapterName;
List? _tags;
String? _title;
num? _type;
num? _userId;
num? _visible;
num? _zan;
Datas copyWith({ bool? adminAdd,
String? apkLink,
num? audit,
String? author,
bool? canEdit,
num? chapterId,
String? chapterName,
bool? collect,
num? courseId,
String? desc,
String? descMd,
String? envelopePic,
bool? fresh,
String? host,
num? id,
bool? isAdminAdd,
String? link,
String? niceDate,
String? niceShareDate,
String? origin,
String? prefix,
String? projectLink,
num? publishTime,
num? realSuperChapterId,
num? selfVisible,
num? shareDate,
String? shareUser,
num? superChapterId,
String? superChapterName,
List? tags,
String? title,
num? type,
num? userId,
num? visible,
num? zan,
}) => Datas( adminAdd: adminAdd ?? _adminAdd,
apkLink: apkLink ?? _apkLink,
audit: audit ?? _audit,
author: author ?? _author,
canEdit: canEdit ?? _canEdit,
chapterId: chapterId ?? _chapterId,
chapterName: chapterName ?? _chapterName,
collect: collect ?? _collect,
courseId: courseId ?? _courseId,
desc: desc ?? _desc,
descMd: descMd ?? _descMd,
envelopePic: envelopePic ?? _envelopePic,
fresh: fresh ?? _fresh,
host: host ?? _host,
id: id ?? _id,
isAdminAdd: isAdminAdd ?? _isAdminAdd,
link: link ?? _link,
niceDate: niceDate ?? _niceDate,
niceShareDate: niceShareDate ?? _niceShareDate,
origin: origin ?? _origin,
prefix: prefix ?? _prefix,
projectLink: projectLink ?? _projectLink,
publishTime: publishTime ?? _publishTime,
realSuperChapterId: realSuperChapterId ?? _realSuperChapterId,
selfVisible: selfVisible ?? _selfVisible,
shareDate: shareDate ?? _shareDate,
shareUser: shareUser ?? _shareUser,
superChapterId: superChapterId ?? _superChapterId,
superChapterName: superChapterName ?? _superChapterName,
tags: tags ?? _tags,
title: title ?? _title,
type: type ?? _type,
userId: userId ?? _userId,
visible: visible ?? _visible,
zan: zan ?? _zan,
);
bool? get adminAdd => _adminAdd;
String? get apkLink => _apkLink;
num? get audit => _audit;
String? get author => _author;
bool? get canEdit => _canEdit;
num? get chapterId => _chapterId;
String? get chapterName => _chapterName;
bool? get collect => _collect;
num? get courseId => _courseId;
String? get desc => _desc;
String? get descMd => _descMd;
String? get envelopePic => _envelopePic;
bool? get fresh => _fresh;
String? get host => _host;
num? get id => _id;
bool? get isAdminAdd => _isAdminAdd;
String? get link => _link;
String? get niceDate => _niceDate;
String? get niceShareDate => _niceShareDate;
String? get origin => _origin;
String? get prefix => _prefix;
String? get projectLink => _projectLink;
num? get publishTime => _publishTime;
num? get realSuperChapterId => _realSuperChapterId;
num? get selfVisible => _selfVisible;
num? get shareDate => _shareDate;
String? get shareUser => _shareUser;
num? get superChapterId => _superChapterId;
String? get superChapterName => _superChapterName;
List? get tags => _tags;
String? get title => _title;
num? get type => _type;
num? get userId => _userId;
num? get visible => _visible;
num? get zan => _zan;

Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['adminAdd'] = _adminAdd;
map['apkLink'] = _apkLink;
map['audit'] = _audit;
map['author'] = _author;
map['canEdit'] = _canEdit;
map['chapterId'] = _chapterId;
map['chapterName'] = _chapterName;
map['collect'] = _collect;
map['courseId'] = _courseId;
map['desc'] = _desc;
map['descMd'] = _descMd;
map['envelopePic'] = _envelopePic;
map['fresh'] = _fresh;
map['host'] = _host;
map['id'] = _id;
map['isAdminAdd'] = _isAdminAdd;
map['link'] = _link;
map['niceDate'] = _niceDate;
map['niceShareDate'] = _niceShareDate;
map['origin'] = _origin;
map['prefix'] = _prefix;
map['projectLink'] = _projectLink;
map['publishTime'] = _publishTime;
map['realSuperChapterId'] = _realSuperChapterId;
map['selfVisible'] = _selfVisible;
map['shareDate'] = _shareDate;
map['shareUser'] = _shareUser;
map['superChapterId'] = _superChapterId;
map['superChapterName'] = _superChapterName;
if (_tags != null) {
map['tags'] = _tags?.map((v) => v.toJson()).toList();
}
map['title'] = _title;
map['type'] = _type;
map['userId'] = _userId;
map['visible'] = _visible;
map['zan'] = _zan;
return map;
}

}

Try do it

No response

@zmtzawqlp
Copy link
Member

1.提供完整的json 2.生成了之后右边自己调整名字,不要用 dart 的关键字作为 class 名字

@hanxiaofeng
Copy link
Author

1.提供完整的json 2.生成了之后右边自己调整名字,不要用 dart 的关键字作为 class 名字

1.https://www.wanandroid.com/article/list/0/json

@zmtzawqlp
Copy link
Member

import 'dart:convert';

class Root {
  const Root({
    required this.data,
    required this.errorCode,
    required this.errorMsg,
  });

  factory Root.fromJson(Map<String, dynamic> json) => Root(
        data: Data.fromJson(asT<Map<String, dynamic>>(json['data'])!),
        errorCode: asT<int>(json['errorCode'])!,
        errorMsg: asT<String>(json['errorMsg'])!,
      );

  final Data data;
  final int errorCode;
  final String errorMsg;

  @override
  String toString() {
    return jsonEncode(this);
  }

  Map<String, dynamic> toJson() => <String, dynamic>{
        'data': data,
        'errorCode': errorCode,
        'errorMsg': errorMsg,
      };
}

class Data {
  const Data({
    required this.curPage,
    required this.datas,
    required this.offset,
    required this.over,
    required this.pageCount,
    required this.size,
    required this.total,
  });

  factory Data.fromJson(Map<String, dynamic> json) {
    final List<Datas>? datas = json['datas'] is List ? <Datas>[] : null;
    if (datas != null) {
      for (final dynamic item in json['datas']!) {
        if (item != null) {
          tryCatch(() {
            datas.add(Datas.fromJson(asT<Map<String, dynamic>>(item)!));
          });
        }
      }
    }
    return Data(
      curPage: asT<int>(json['curPage'])!,
      datas: datas!,
      offset: asT<int>(json['offset'])!,
      over: asT<bool>(json['over'])!,
      pageCount: asT<int>(json['pageCount'])!,
      size: asT<int>(json['size'])!,
      total: asT<int>(json['total'])!,
    );
  }

  final int curPage;
  final List<Datas> datas;
  final int offset;
  final bool over;
  final int pageCount;
  final int size;
  final int total;

  @override
  String toString() {
    return jsonEncode(this);
  }

  Map<String, dynamic> toJson() => <String, dynamic>{
        'curPage': curPage,
        'datas': datas,
        'offset': offset,
        'over': over,
        'pageCount': pageCount,
        'size': size,
        'total': total,
      };
}

class Datas {
  const Datas({
    required this.adminAdd,
    required this.apkLink,
    required this.audit,
    required this.author,
    required this.canEdit,
    required this.chapterId,
    required this.chapterName,
    required this.collect,
    required this.courseId,
    required this.desc,
    required this.descMd,
    required this.envelopePic,
    required this.fresh,
    required this.host,
    required this.id,
    required this.isAdminAdd,
    required this.link,
    required this.niceDate,
    required this.niceShareDate,
    required this.origin,
    required this.prefix,
    required this.projectLink,
    required this.publishTime,
    required this.realSuperChapterId,
    required this.selfVisible,
    required this.shareDate,
    required this.shareUser,
    required this.superChapterId,
    required this.superChapterName,
    required this.tags,
    required this.title,
    required this.type,
    required this.userId,
    required this.visible,
    required this.zan,
  });

  factory Datas.fromJson(Map<String, dynamic> json) {
    final List<Tags>? tags = json['tags'] is List ? <Tags>[] : null;
    if (tags != null) {
      for (final dynamic item in json['tags']!) {
        if (item != null) {
          tryCatch(() {
            tags.add(Tags.fromJson(asT<Map<String, dynamic>>(item)!));
          });
        }
      }
    }
    return Datas(
      adminAdd: asT<bool>(json['adminAdd'])!,
      apkLink: asT<String>(json['apkLink'])!,
      audit: asT<int>(json['audit'])!,
      author: asT<String>(json['author'])!,
      canEdit: asT<bool>(json['canEdit'])!,
      chapterId: asT<int>(json['chapterId'])!,
      chapterName: asT<String>(json['chapterName'])!,
      collect: asT<bool>(json['collect'])!,
      courseId: asT<int>(json['courseId'])!,
      desc: asT<String>(json['desc'])!,
      descMd: asT<String>(json['descMd'])!,
      envelopePic: asT<String>(json['envelopePic'])!,
      fresh: asT<bool>(json['fresh'])!,
      host: asT<String>(json['host'])!,
      id: asT<int>(json['id'])!,
      isAdminAdd: asT<bool>(json['isAdminAdd'])!,
      link: asT<String>(json['link'])!,
      niceDate: asT<String>(json['niceDate'])!,
      niceShareDate: asT<String>(json['niceShareDate'])!,
      origin: asT<String>(json['origin'])!,
      prefix: asT<String>(json['prefix'])!,
      projectLink: asT<String>(json['projectLink'])!,
      publishTime: asT<int>(json['publishTime'])!,
      realSuperChapterId: asT<int>(json['realSuperChapterId'])!,
      selfVisible: asT<int>(json['selfVisible'])!,
      shareDate: asT<int>(json['shareDate'])!,
      shareUser: asT<String>(json['shareUser'])!,
      superChapterId: asT<int>(json['superChapterId'])!,
      superChapterName: asT<String>(json['superChapterName'])!,
      tags: tags!,
      title: asT<String>(json['title'])!,
      type: asT<int>(json['type'])!,
      userId: asT<int>(json['userId'])!,
      visible: asT<int>(json['visible'])!,
      zan: asT<int>(json['zan'])!,
    );
  }

  final bool adminAdd;
  final String apkLink;
  final int audit;
  final String author;
  final bool canEdit;
  final int chapterId;
  final String chapterName;
  final bool collect;
  final int courseId;
  final String desc;
  final String descMd;
  final String envelopePic;
  final bool fresh;
  final String host;
  final int id;
  final bool isAdminAdd;
  final String link;
  final String niceDate;
  final String niceShareDate;
  final String origin;
  final String prefix;
  final String projectLink;
  final int publishTime;
  final int realSuperChapterId;
  final int selfVisible;
  final int shareDate;
  final String shareUser;
  final int superChapterId;
  final String superChapterName;
  final List<Tags> tags;
  final String title;
  final int type;
  final int userId;
  final int visible;
  final int zan;

  @override
  String toString() {
    return jsonEncode(this);
  }

  Map<String, dynamic> toJson() => <String, dynamic>{
        'adminAdd': adminAdd,
        'apkLink': apkLink,
        'audit': audit,
        'author': author,
        'canEdit': canEdit,
        'chapterId': chapterId,
        'chapterName': chapterName,
        'collect': collect,
        'courseId': courseId,
        'desc': desc,
        'descMd': descMd,
        'envelopePic': envelopePic,
        'fresh': fresh,
        'host': host,
        'id': id,
        'isAdminAdd': isAdminAdd,
        'link': link,
        'niceDate': niceDate,
        'niceShareDate': niceShareDate,
        'origin': origin,
        'prefix': prefix,
        'projectLink': projectLink,
        'publishTime': publishTime,
        'realSuperChapterId': realSuperChapterId,
        'selfVisible': selfVisible,
        'shareDate': shareDate,
        'shareUser': shareUser,
        'superChapterId': superChapterId,
        'superChapterName': superChapterName,
        'tags': tags,
        'title': title,
        'type': type,
        'userId': userId,
        'visible': visible,
        'zan': zan,
      };
}

class Tags {
  const Tags({
    required this.name,
    required this.url,
  });

  factory Tags.fromJson(Map<String, dynamic> json) => Tags(
        name: asT<String>(json['name'])!,
        url: asT<String>(json['url'])!,
      );

  final String name;
  final String url;

  @override
  String toString() {
    return jsonEncode(this);
  }

  Map<String, dynamic> toJson() => <String, dynamic>{
        'name': name,
        'url': url,
      };
}

@zmtzawqlp
Copy link
Member

哪里有你说的东西

@hanxiaofeng
Copy link
Author

哪里有你说的东西

/// data : {"curPage":1,"datas":[{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27057,"isAdminAdd":false,"link":"https://juejin.cn/post/7269049833363963923","niceDate":"1天前","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692544255000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692544255000,"shareUser":"淡然一笑","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"AndroidAGP8.1.0和JDK 17迁移之旅","type":0,"userId":30962,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27056,"isAdminAdd":false,"link":"https://blog.csdn.net/weixin_46039528/article/details/132391529","niceDate":"1天前","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692512517000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692512517000,"shareUser":"qfh","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android源码解析--享元设计模式,handler消息传递机制(基于Android API 33 SDK分析)","type":0,"userId":128443,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"张鸿洋","canEdit":false,"chapterId":543,"chapterName":"Android技术周报","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27047,"isAdminAdd":false,"link":"https://www.wanandroid.com/blog/show/3556","niceDate":"2天前","niceShareDate":"2天前","origin":"","prefix":"","projectLink":"","publishTime":1692460800000,"realSuperChapterId":542,"selfVisible":0,"shareDate":1692461400000,"shareUser":"","superChapterId":543,"superChapterName":"技术周报","tags":[],"title":"Android 技术周刊 (2023-08-13 ~ 2023-08-20)","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27046,"isAdminAdd":false,"link":"https://juejin.cn/post/7268894037464367140","niceDate":"2天前","niceShareDate":"2天前","origin":"","prefix":"","projectLink":"","publishTime":1692452673000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692452673000,"shareUser":"pika","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Jni函数 Hook实战","type":0,"userId":133632,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27044,"isAdminAdd":false,"link":"https://juejin.cn/post/7268228858762870784","niceDate":"2023-08-18 10:34","niceShareDate":"2023-08-18 10:34","origin":"","prefix":"","projectLink":"","publishTime":1692326088000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692326088000,"shareUser":"张风捷特烈","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Flutter 3.13 组件更新 | 欢迎 Slivers 体系 5 位新成员","type":0,"userId":31634,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27043,"isAdminAdd":false,"link":"https://blog.csdn.net/weixin_46039528/article/details/132353252","niceDate":"2023-08-18 09:29","niceShareDate":"2023-08-18 09:29","origin":"","prefix":"","projectLink":"","publishTime":1692322165000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692322165000,"shareUser":"qfh","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android布局填充器--深入LayoutInflater一探究竟","type":0,"userId":128443,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":408,"chapterName":"鸿洋","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27059,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/iMIsvdS9x4k8J5Cgt8bnYg","niceDate":"2023-08-18 00:00","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692288000000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692580914000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/408/1"}],"title":"Gradle Task 系列完结,Task执行大剖析","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"Android群英传","canEdit":false,"chapterId":413,"chapterName":"Android群英传","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27060,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/viIygKw_oLgkuhMFW_gN5A","niceDate":"2023-08-18 00:00","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692288000000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692580933000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/413/1"}],"title":"Flutter性能揭秘之RepaintBoundary","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"郭霖","canEdit":false,"chapterId":409,"chapterName":"郭霖","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27061,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/oY7DgNMZwKs-bMqfUtRBkg","niceDate":"2023-08-18 00:00","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692288000000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692580945000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/409/1"}],"title":"Jetpack Compose中的debug调试","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":588,"chapterName":"gradle plugin 源码分析","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27038,"isAdminAdd":false,"link":"https://juejin.cn/post/7219988638050369594","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287437000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287437000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Kotlin Script加载流程","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":588,"chapterName":"gradle plugin 源码分析","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27037,"isAdminAdd":false,"link":"https://juejin.cn/post/7219925045228240954","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287428000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287428000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Groovy Script加载流程","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":589,"chapterName":"gradle 原理","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27036,"isAdminAdd":false,"link":"https://juejin.cn/post/7241492331954012221","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287417000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287417000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Task原理(执行篇)","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":589,"chapterName":"gradle 原理","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27035,"isAdminAdd":false,"link":"https://juejin.cn/post/7241492186919354405","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287409000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287409000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Task原理(并行篇)","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":589,"chapterName":"gradle 原理","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27034,"isAdminAdd":false,"link":"https://juejin.cn/post/7241492186919239717","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287400000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287400000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Task原理(Graph篇)","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27033,"isAdminAdd":false,"link":"https://juejin.cn/post/7267840969605382198","niceDate":"2023-08-17 18:18","niceShareDate":"2023-08-17 18:18","origin":"","prefix":"","projectLink":"","publishTime":1692267513000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692267513000,"shareUser":"淡然一笑","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android CameraX适配Android13的踩坑之路","type":0,"userId":30962,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":408,"chapterName":"鸿洋","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27041,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/ql-QpUzSc2Wv-GyDCBqHzw","niceDate":"2023-08-17 00:00","niceShareDate":"2023-08-18 09:17","origin":"","prefix":"","projectLink":"","publishTime":1692201600000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692321442000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/408/1"}],"title":"Android 13 媒体权限适配指南","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"郭霖","canEdit":false,"chapterId":409,"chapterName":"郭霖","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27042,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/DWaPe8Z0LrChyDRQ_oH7RQ","niceDate":"2023-08-17 00:00","niceShareDate":"2023-08-18 09:17","origin":"","prefix":"","projectLink":"","publishTime":1692201600000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692321458000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/409/1"}],"title":"内存泄漏大集结:安卓开发者不可错过的性能优化技巧","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27030,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s?__biz=MzA3ODQ5MTAwOQ==&mid=2448005277&idx=1&sn=857b5aa9d3f0e7500e60abbf2c202a2f&chksm=8b5cc473bc2b4d65f5cacf4e64a657a38cc18f6993b3d20cb345634c75e804baf20c2d698845#rd","niceDate":"2023-08-16 22:28","niceShareDate":"2023-08-16 22:28","origin":"","prefix":"","projectLink":"","publishTime":1692196113000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692196113000,"shareUser":"小海Poseidon","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"从LeakCanary看对象回收判断方法","type":0,"userId":88354,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":634,"chapterName":"京东云技术团队","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27029,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/Co8W6BAR0H_8P6NjQnWoLQ","niceDate":"2023-08-16 19:25","niceShareDate":"2023-08-16 19:25","origin":"","prefix":"","projectLink":"","publishTime":1692185105000,"realSuperChapterId":604,"selfVisible":0,"shareDate":1692185105000,"shareUser":"","superChapterId":605,"superChapterName":"大厂对外分享 - 学习路径","tags":[],"title":"京东金融Android瘦身探索与实践","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27020,"isAdminAdd":false,"link":"https://juejin.cn/post/7267477662360698895","niceDate":"2023-08-16 00:28","niceShareDate":"2023-08-16 00:28","origin":"","prefix":"","projectLink":"","publishTime":1692116913000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692116913000,"shareUser":"Taonce","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Jetpack Compose - 约束布局​ConstrainLayout解决复杂组合项","type":0,"userId":9695,"visible":1,"zan":0}],"offset":0,"over":false,"pageCount":728,"size":20,"total":14547}
/// errorCode : 0
/// errorMsg : ""

class ArticleResult {
ArticleResult({
Data? data,
num? errorCode,
String? errorMsg,}){
_data = data;
_errorCode = errorCode;
_errorMsg = errorMsg;
}

ArticleResult.fromJson(dynamic json) {
_data = json['data'] != null ? Data.fromJson(json['data']) : null;
_errorCode = json['errorCode'];
_errorMsg = json['errorMsg'];
}
Data? _data;
num? _errorCode;
String? _errorMsg;
ArticleResult copyWith({ Data? data,
num? errorCode,
String? errorMsg,
}) => ArticleResult( data: data ?? _data,
errorCode: errorCode ?? _errorCode,
errorMsg: errorMsg ?? _errorMsg,
);
Data? get data => _data;
num? get errorCode => _errorCode;
String? get errorMsg => _errorMsg;

Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
if (_data != null) {
map['data'] = _data?.toJson();
}
map['errorCode'] = _errorCode;
map['errorMsg'] = _errorMsg;
return map;
}

}

/// curPage : 1
/// datas : [{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27057,"isAdminAdd":false,"link":"https://juejin.cn/post/7269049833363963923","niceDate":"1天前","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692544255000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692544255000,"shareUser":"淡然一笑","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"AndroidAGP8.1.0和JDK 17迁移之旅","type":0,"userId":30962,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27056,"isAdminAdd":false,"link":"https://blog.csdn.net/weixin_46039528/article/details/132391529","niceDate":"1天前","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692512517000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692512517000,"shareUser":"qfh","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android源码解析--享元设计模式,handler消息传递机制(基于Android API 33 SDK分析)","type":0,"userId":128443,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"张鸿洋","canEdit":false,"chapterId":543,"chapterName":"Android技术周报","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27047,"isAdminAdd":false,"link":"https://www.wanandroid.com/blog/show/3556","niceDate":"2天前","niceShareDate":"2天前","origin":"","prefix":"","projectLink":"","publishTime":1692460800000,"realSuperChapterId":542,"selfVisible":0,"shareDate":1692461400000,"shareUser":"","superChapterId":543,"superChapterName":"技术周报","tags":[],"title":"Android 技术周刊 (2023-08-13 ~ 2023-08-20)","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27046,"isAdminAdd":false,"link":"https://juejin.cn/post/7268894037464367140","niceDate":"2天前","niceShareDate":"2天前","origin":"","prefix":"","projectLink":"","publishTime":1692452673000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692452673000,"shareUser":"pika","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Jni函数 Hook实战","type":0,"userId":133632,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27044,"isAdminAdd":false,"link":"https://juejin.cn/post/7268228858762870784","niceDate":"2023-08-18 10:34","niceShareDate":"2023-08-18 10:34","origin":"","prefix":"","projectLink":"","publishTime":1692326088000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692326088000,"shareUser":"张风捷特烈","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Flutter 3.13 组件更新 | 欢迎 Slivers 体系 5 位新成员","type":0,"userId":31634,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27043,"isAdminAdd":false,"link":"https://blog.csdn.net/weixin_46039528/article/details/132353252","niceDate":"2023-08-18 09:29","niceShareDate":"2023-08-18 09:29","origin":"","prefix":"","projectLink":"","publishTime":1692322165000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692322165000,"shareUser":"qfh","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android布局填充器--深入LayoutInflater一探究竟","type":0,"userId":128443,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":408,"chapterName":"鸿洋","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27059,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/iMIsvdS9x4k8J5Cgt8bnYg","niceDate":"2023-08-18 00:00","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692288000000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692580914000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/408/1"}],"title":"Gradle Task 系列完结,Task执行大剖析","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"Android群英传","canEdit":false,"chapterId":413,"chapterName":"Android群英传","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27060,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/viIygKw_oLgkuhMFW_gN5A","niceDate":"2023-08-18 00:00","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692288000000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692580933000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/413/1"}],"title":"Flutter性能揭秘之RepaintBoundary","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"郭霖","canEdit":false,"chapterId":409,"chapterName":"郭霖","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27061,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/oY7DgNMZwKs-bMqfUtRBkg","niceDate":"2023-08-18 00:00","niceShareDate":"1天前","origin":"","prefix":"","projectLink":"","publishTime":1692288000000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692580945000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/409/1"}],"title":"Jetpack Compose中的debug调试","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":588,"chapterName":"gradle plugin 源码分析","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27038,"isAdminAdd":false,"link":"https://juejin.cn/post/7219988638050369594","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287437000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287437000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Kotlin Script加载流程","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":588,"chapterName":"gradle plugin 源码分析","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27037,"isAdminAdd":false,"link":"https://juejin.cn/post/7219925045228240954","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287428000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287428000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Groovy Script加载流程","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":589,"chapterName":"gradle 原理","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27036,"isAdminAdd":false,"link":"https://juejin.cn/post/7241492331954012221","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287417000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287417000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Task原理(执行篇)","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":589,"chapterName":"gradle 原理","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27035,"isAdminAdd":false,"link":"https://juejin.cn/post/7241492186919354405","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287409000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287409000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Task原理(并行篇)","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":589,"chapterName":"gradle 原理","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27034,"isAdminAdd":false,"link":"https://juejin.cn/post/7241492186919239717","niceDate":"2023-08-17 23:50","niceShareDate":"2023-08-17 23:50","origin":"","prefix":"","projectLink":"","publishTime":1692287400000,"realSuperChapterId":582,"selfVisible":0,"shareDate":1692287400000,"shareUser":"","superChapterId":583,"superChapterName":"Android Gradle - 学习路径","tags":[],"title":"Gradle深入解析 - Task原理(Graph篇)","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27033,"isAdminAdd":false,"link":"https://juejin.cn/post/7267840969605382198","niceDate":"2023-08-17 18:18","niceShareDate":"2023-08-17 18:18","origin":"","prefix":"","projectLink":"","publishTime":1692267513000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692267513000,"shareUser":"淡然一笑","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android CameraX适配Android13的踩坑之路","type":0,"userId":30962,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":408,"chapterName":"鸿洋","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27041,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/ql-QpUzSc2Wv-GyDCBqHzw","niceDate":"2023-08-17 00:00","niceShareDate":"2023-08-18 09:17","origin":"","prefix":"","projectLink":"","publishTime":1692201600000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692321442000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/408/1"}],"title":"Android 13 媒体权限适配指南","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"郭霖","canEdit":false,"chapterId":409,"chapterName":"郭霖","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27042,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/DWaPe8Z0LrChyDRQ_oH7RQ","niceDate":"2023-08-17 00:00","niceShareDate":"2023-08-18 09:17","origin":"","prefix":"","projectLink":"","publishTime":1692201600000,"realSuperChapterId":407,"selfVisible":0,"shareDate":1692321458000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/409/1"}],"title":"内存泄漏大集结:安卓开发者不可错过的性能优化技巧","type":0,"userId":-1,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27030,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s?__biz=MzA3ODQ5MTAwOQ==&mid=2448005277&idx=1&sn=857b5aa9d3f0e7500e60abbf2c202a2f&chksm=8b5cc473bc2b4d65f5cacf4e64a657a38cc18f6993b3d20cb345634c75e804baf20c2d698845#rd","niceDate":"2023-08-16 22:28","niceShareDate":"2023-08-16 22:28","origin":"","prefix":"","projectLink":"","publishTime":1692196113000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692196113000,"shareUser":"小海Poseidon","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"从LeakCanary看对象回收判断方法","type":0,"userId":88354,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":634,"chapterName":"京东云技术团队","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27029,"isAdminAdd":false,"link":"https://mp.weixin.qq.com/s/Co8W6BAR0H_8P6NjQnWoLQ","niceDate":"2023-08-16 19:25","niceShareDate":"2023-08-16 19:25","origin":"","prefix":"","projectLink":"","publishTime":1692185105000,"realSuperChapterId":604,"selfVisible":0,"shareDate":1692185105000,"shareUser":"","superChapterId":605,"superChapterName":"大厂对外分享 - 学习路径","tags":[],"title":"京东金融Android瘦身探索与实践","type":0,"userId":2,"visible":1,"zan":0},{"adminAdd":false,"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"host":"","id":27020,"isAdminAdd":false,"link":"https://juejin.cn/post/7267477662360698895","niceDate":"2023-08-16 00:28","niceShareDate":"2023-08-16 00:28","origin":"","prefix":"","projectLink":"","publishTime":1692116913000,"realSuperChapterId":493,"selfVisible":0,"shareDate":1692116913000,"shareUser":"Taonce","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Jetpack Compose - 约束布局​ConstrainLayout解决复杂组合项","type":0,"userId":9695,"visible":1,"zan":0}]
/// offset : 0
/// over : false
/// pageCount : 728
/// size : 20
/// total : 14547

class Data {
Data({
num? curPage,
List? datas,
num? offset,
bool? over,
num? pageCount,
num? size,
num? total,}){
_curPage = curPage;
_datas = datas;
_offset = offset;
_over = over;
_pageCount = pageCount;
_size = size;
_total = total;
}

Data.fromJson(dynamic json) {
_curPage = json['curPage'];
if (json['datas'] != null) {
_datas = [];
json['datas'].forEach((v) {
_datas?.add(Datas.fromJson(v));
});
}
_offset = json['offset'];
_over = json['over'];
_pageCount = json['pageCount'];
_size = json['size'];
_total = json['total'];
}
num? _curPage;
List? _datas;
num? _offset;
bool? _over;
num? _pageCount;
num? _size;
num? _total;
Data copyWith({ num? curPage,
List? datas,
num? offset,
bool? over,
num? pageCount,
num? size,
num? total,
}) => Data( curPage: curPage ?? _curPage,
datas: datas ?? _datas,
offset: offset ?? _offset,
over: over ?? _over,
pageCount: pageCount ?? _pageCount,
size: size ?? _size,
total: total ?? _total,
);
num? get curPage => _curPage;
List? get datas => _datas;
num? get offset => _offset;
bool? get over => _over;
num? get pageCount => _pageCount;
num? get size => _size;
num? get total => _total;

Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['curPage'] = _curPage;
if (_datas != null) {
map['datas'] = _datas?.map((v) => v.toJson()).toList();
}
map['offset'] = _offset;
map['over'] = _over;
map['pageCount'] = _pageCount;
map['size'] = _size;
map['total'] = _total;
return map;
}

}

/// adminAdd : false
/// apkLink : ""
/// audit : 1
/// author : ""
/// canEdit : false
/// chapterId : 502
/// chapterName : "自助"
/// collect : false
/// courseId : 13
/// desc : ""
/// descMd : ""
/// envelopePic : ""
/// fresh : false
/// host : ""
/// id : 27057
/// isAdminAdd : false
/// link : "https://juejin.cn/post/7269049833363963923"
/// niceDate : "1天前"
/// niceShareDate : "1天前"
/// origin : ""
/// prefix : ""
/// projectLink : ""
/// publishTime : 1692544255000
/// realSuperChapterId : 493
/// selfVisible : 0
/// shareDate : 1692544255000
/// shareUser : "淡然一笑"
/// superChapterId : 494
/// superChapterName : "广场Tab"
/// tags : []
/// title : "AndroidAGP8.1.0和JDK 17迁移之旅"
/// type : 0
/// userId : 30962
/// visible : 1
/// zan : 0

class Datas {
Datas({
bool? adminAdd,
String? apkLink,
num? audit,
String? author,
bool? canEdit,
num? chapterId,
String? chapterName,
bool? collect,
num? courseId,
String? desc,
String? descMd,
String? envelopePic,
bool? fresh,
String? host,
num? id,
bool? isAdminAdd,
String? link,
String? niceDate,
String? niceShareDate,
String? origin,
String? prefix,
String? projectLink,
num? publishTime,
num? realSuperChapterId,
num? selfVisible,
num? shareDate,
String? shareUser,
num? superChapterId,
String? superChapterName,
List? tags,
String? title,
num? type,
num? userId,
num? visible,
num? zan,}){
_adminAdd = adminAdd;
_apkLink = apkLink;
_audit = audit;
_author = author;
_canEdit = canEdit;
_chapterId = chapterId;
_chapterName = chapterName;
_collect = collect;
_courseId = courseId;
_desc = desc;
_descMd = descMd;
_envelopePic = envelopePic;
_fresh = fresh;
_host = host;
_id = id;
_isAdminAdd = isAdminAdd;
_link = link;
_niceDate = niceDate;
_niceShareDate = niceShareDate;
_origin = origin;
_prefix = prefix;
_projectLink = projectLink;
_publishTime = publishTime;
_realSuperChapterId = realSuperChapterId;
_selfVisible = selfVisible;
_shareDate = shareDate;
_shareUser = shareUser;
_superChapterId = superChapterId;
_superChapterName = superChapterName;
_tags = tags;
_title = title;
_type = type;
_userId = userId;
_visible = visible;
_zan = zan;
}

Datas.fromJson(dynamic json) {
_adminAdd = json['adminAdd'];
_apkLink = json['apkLink'];
_audit = json['audit'];
_author = json['author'];
_canEdit = json['canEdit'];
_chapterId = json['chapterId'];
_chapterName = json['chapterName'];
_collect = json['collect'];
_courseId = json['courseId'];
_desc = json['desc'];
_descMd = json['descMd'];
_envelopePic = json['envelopePic'];
_fresh = json['fresh'];
_host = json['host'];
_id = json['id'];
_isAdminAdd = json['isAdminAdd'];
_link = json['link'];
_niceDate = json['niceDate'];
_niceShareDate = json['niceShareDate'];
_origin = json['origin'];
_prefix = json['prefix'];
_projectLink = json['projectLink'];
_publishTime = json['publishTime'];
_realSuperChapterId = json['realSuperChapterId'];
_selfVisible = json['selfVisible'];
_shareDate = json['shareDate'];
_shareUser = json['shareUser'];
_superChapterId = json['superChapterId'];
_superChapterName = json['superChapterName'];
if (json['tags'] != null) {
_tags = [];
json['tags'].forEach((v) {
_tags?.add(Dynamic.fromJson(v));
});
}
_title = json['title'];
_type = json['type'];
_userId = json['userId'];
_visible = json['visible'];
_zan = json['zan'];
}
bool? _adminAdd;
String? _apkLink;
num? _audit;
String? _author;
bool? _canEdit;
num? _chapterId;
String? _chapterName;
bool? _collect;
num? _courseId;
String? _desc;
String? _descMd;
String? _envelopePic;
bool? _fresh;
String? _host;
num? _id;
bool? _isAdminAdd;
String? _link;
String? _niceDate;
String? _niceShareDate;
String? _origin;
String? _prefix;
String? _projectLink;
num? _publishTime;
num? _realSuperChapterId;
num? _selfVisible;
num? _shareDate;
String? _shareUser;
num? _superChapterId;
String? _superChapterName;
List? _tags;
String? _title;
num? _type;
num? _userId;
num? _visible;
num? _zan;
Datas copyWith({ bool? adminAdd,
String? apkLink,
num? audit,
String? author,
bool? canEdit,
num? chapterId,
String? chapterName,
bool? collect,
num? courseId,
String? desc,
String? descMd,
String? envelopePic,
bool? fresh,
String? host,
num? id,
bool? isAdminAdd,
String? link,
String? niceDate,
String? niceShareDate,
String? origin,
String? prefix,
String? projectLink,
num? publishTime,
num? realSuperChapterId,
num? selfVisible,
num? shareDate,
String? shareUser,
num? superChapterId,
String? superChapterName,
List? tags,
String? title,
num? type,
num? userId,
num? visible,
num? zan,
}) => Datas( adminAdd: adminAdd ?? _adminAdd,
apkLink: apkLink ?? _apkLink,
audit: audit ?? _audit,
author: author ?? _author,
canEdit: canEdit ?? _canEdit,
chapterId: chapterId ?? _chapterId,
chapterName: chapterName ?? _chapterName,
collect: collect ?? _collect,
courseId: courseId ?? _courseId,
desc: desc ?? _desc,
descMd: descMd ?? _descMd,
envelopePic: envelopePic ?? _envelopePic,
fresh: fresh ?? _fresh,
host: host ?? _host,
id: id ?? _id,
isAdminAdd: isAdminAdd ?? _isAdminAdd,
link: link ?? _link,
niceDate: niceDate ?? _niceDate,
niceShareDate: niceShareDate ?? _niceShareDate,
origin: origin ?? _origin,
prefix: prefix ?? _prefix,
projectLink: projectLink ?? _projectLink,
publishTime: publishTime ?? _publishTime,
realSuperChapterId: realSuperChapterId ?? _realSuperChapterId,
selfVisible: selfVisible ?? _selfVisible,
shareDate: shareDate ?? _shareDate,
shareUser: shareUser ?? _shareUser,
superChapterId: superChapterId ?? _superChapterId,
superChapterName: superChapterName ?? _superChapterName,
tags: tags ?? _tags,
title: title ?? _title,
type: type ?? _type,
userId: userId ?? _userId,
visible: visible ?? _visible,
zan: zan ?? _zan,
);
bool? get adminAdd => _adminAdd;
String? get apkLink => _apkLink;
num? get audit => _audit;
String? get author => _author;
bool? get canEdit => _canEdit;
num? get chapterId => _chapterId;
String? get chapterName => _chapterName;
bool? get collect => _collect;
num? get courseId => _courseId;
String? get desc => _desc;
String? get descMd => _descMd;
String? get envelopePic => _envelopePic;
bool? get fresh => _fresh;
String? get host => _host;
num? get id => _id;
bool? get isAdminAdd => _isAdminAdd;
String? get link => _link;
String? get niceDate => _niceDate;
String? get niceShareDate => _niceShareDate;
String? get origin => _origin;
String? get prefix => _prefix;
String? get projectLink => _projectLink;
num? get publishTime => _publishTime;
num? get realSuperChapterId => _realSuperChapterId;
num? get selfVisible => _selfVisible;
num? get shareDate => _shareDate;
String? get shareUser => _shareUser;
num? get superChapterId => _superChapterId;
String? get superChapterName => _superChapterName;
List? get tags => _tags;
String? get title => _title;
num? get type => _type;
num? get userId => _userId;
num? get visible => _visible;
num? get zan => _zan;

Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['adminAdd'] = _adminAdd;
map['apkLink'] = _apkLink;
map['audit'] = _audit;
map['author'] = _author;
map['canEdit'] = _canEdit;
map['chapterId'] = _chapterId;
map['chapterName'] = _chapterName;
map['collect'] = _collect;
map['courseId'] = _courseId;
map['desc'] = _desc;
map['descMd'] = _descMd;
map['envelopePic'] = _envelopePic;
map['fresh'] = _fresh;
map['host'] = _host;
map['id'] = _id;
map['isAdminAdd'] = _isAdminAdd;
map['link'] = _link;
map['niceDate'] = _niceDate;
map['niceShareDate'] = _niceShareDate;
map['origin'] = _origin;
map['prefix'] = _prefix;
map['projectLink'] = _projectLink;
map['publishTime'] = _publishTime;
map['realSuperChapterId'] = _realSuperChapterId;
map['selfVisible'] = _selfVisible;
map['shareDate'] = _shareDate;
map['shareUser'] = _shareUser;
map['superChapterId'] = _superChapterId;
map['superChapterName'] = _superChapterName;
if (_tags != null) {
map['tags'] = _tags?.map((v) => v.toJson()).toList();
}
map['title'] = _title;
map['type'] = _type;
map['userId'] = _userId;
map['visible'] = _visible;
map['zan'] = _zan;
return map;
}

}

@hanxiaofeng
Copy link
Author

这是我生成的,用的android studio

@zmtzawqlp
Copy link
Member

你是不是找错地方了? 这个工具不是 android studio 的插件

@hanxiaofeng
Copy link
Author

是idea的插件是吧?

@hanxiaofeng
Copy link
Author

不支持as上用是吧

@zmtzawqlp
Copy link
Member

先看看readme 吧,我都不知道你用什么东西生成的

@hanxiaofeng
Copy link
Author

好的

android studio上也可以搜索到这个插件:

image image

@zmtzawqlp
Copy link
Member

zmtzawqlp commented Aug 22, 2023

下次自己先看看自己用的插件的介绍 https://github.com/fluttercandies/FlutterJsonBeanFactory

@zmtzawqlp zmtzawqlp transferred this issue from fluttercandies/JsonToDart Aug 22, 2023
@zmtzawqlp zmtzawqlp reopened this Aug 22, 2023
@zhangruiyu
Copy link
Collaborator

额 用的都不是我们这个插件

@zhangruiyu
Copy link
Collaborator

image
这个才是

@zmtzawqlp
Copy link
Member

zmtzawqlp commented Aug 22, 2023

相当尴尬 @hanxiaofeng 你使用的啥插件,去插件的介绍里面去找出处

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants