【发布时间】:2021-02-17 04:16:47
【问题描述】:
{
"documents": [
{
"name": "projects/xxxxx/databases/(default)/documents/blogs/Hao5IboeA6b7ySlmx0qN",
"fields": {
"imgUrl": {
"stringValue": "https://firebasestorage.googleapis.com/v0/b/xxxxxx/o/blogImages%2F72H566888.jpg?alt=media&token=75b75deb-69a3-4019-a82e-335a2d72b52e"
},
"authorName": {
"stringValue": "iki"
},
"title": {
"stringValue": "dd"
},
"desc": {
"stringValue": "ee"
}
},
"createTime": "2020-10-31T08:57:46.799862Z",
"updateTime": "2020-10-31T08:57:46.799862Z"
},
]
}
我正在使用 Firebase Firestore Rest Api。我有上面的 json 格式的输出。我使用 Json 来创建我的模型。我的模型如下。
class Model {
List<Documents> documents;
Model({this.documents});
Model.fromJson(Map<String, dynamic> json) {
if (json['documents'] != null) {
documents = new List<Documents>();
json['documents'].forEach((v) {
documents.add(new Documents.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.documents != null) {
data['documents'] = this.documents.map((v) => v.toJson()).toList();
}
return data;
}
}
class Documents {
String name;
Fields fields;
String createTime;
String updateTime;
Documents({this.name, this.fields, this.createTime, this.updateTime});
Documents.fromJson(Map<String, dynamic> json) {
name = json['name'];
fields =
json['fields'] != null ? new Fields.fromJson(json['fields']) : null;
createTime = json['createTime'];
updateTime = json['updateTime'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['name'] = this.name;
if (this.fields != null) {
data['fields'] = this.fields.toJson();
}
data['createTime'] = this.createTime;
data['updateTime'] = this.updateTime;
return data;
}
}
......
return jsonModel.map((item) => model.fromJson(item)).toList(); 我返回了它,但在 FutureBuilder 中它是 snapshot.data[index].documents .
如何访问 imgUrl、authorName、title、desc 字段?我对这种混合 json 输出有困难。你能帮帮我吗?
【问题讨论】:
标签: json flutter google-cloud-firestore rest