#json #dart #flutter
#json #dart #флаттер
Вопрос:
Я использую библиотеку json_serializable и firebase для базы данных. Мне нужно сериализовать и десериализовать мой класс данных в / из JSON. Но формат firebase json выглядит следующим образом
{
'some_id_here': {
'title': 'some_title',
'content': 'some_content',
'timestamp': 'some_timestamp'
}, ...
}
Вот мой класс
import 'package:json_annotation/json_annotation.dart';
part 'update.g.dart';
@JsonSerializable()
class Update {
final String id, title, content, timestamp;
Update({this.id, this.title, this.content, this.timestamp});
factory Update.fromJson(Map<String, dynamic> json) => _$UpdateFromJson(json);
Map<String, dynamic> toJson() {
return _$UpdateToJson(this);
}
}
Итак, как настроить функцию toJSON(), чтобы я мог десериализовать из
Update('ID', 'TITLE', 'CONTENT', 'TIMESTAMP');
Для
{
'ID': {
'title': 'TITLE',
'content': 'CONTENT',
'timestamp': 'TIMESTAMP'
}
}
Ответ №1:
Попробуйте это
class ID {
String title;
String content;
String timestamp;
Map<String, dynamic> toJson() {
final Map<String, dynamic> ID = new Map<String, dynamic>();
ID['title'] = this.title;
ID['content'] = this.content;
ID['timestamp'] = this.timestamp;
return ID;
}
}
Комментарии:
1. Потому что возвращаемый json не является списком объекта. Должен ли я использовать
Map<String, ID> id;
??