json - 当我从 Flutter 中的 API 获取数据时出现问题。请帮我获取数据并显示它。我的数据是这样的
问题描述
{
"success": true,
"data": {
"name": {
"uz": "tez kunlarda Dota haqida anime o'zbek tilida",
"ru": "скоро аниме по мотивом игры дота на узбекском языке"
},
"description": {
"uz": "E'lon bilan bir qatorda ijodkorlar",
"ru": "Вместе с анонсом создатели"
},
"videoLink": " ",
"date": "2021-03-15T12:09:29.653Z",
"status": true,
"_id": "604ff84e6a914c2f1dfa9a6a",
"slug": "3383590",
"image": "/public/uploads/cinema/8c926c1344dae65a03dcdbf1acb71a10.jpg",
"__v": 0
}
}
解决方案
您可以使用此https://app.quicktype.io/,很简单,输入您的 api 答案并选择 dart,将其放入文件中,您可以轻松访问您的数据当您格式化 json 文件时,您会得到:
{
"success":true,
"data":{
"name":{
"uz":"tez kunlarda Dota haqida anime o'zbek tilida",
"ru":"скоро аниме по мотивом игры дота на узбекском языке"
},
"description":{
"uz":"E'lon bilan bir qatorda ijodkorlar",
"ru":"Вместе с анонсом создатели"
},
"videoLink":" ",
"date":"2021-03-15T12:09:29.653Z",
"status":true,
"_id":"604ff84e6a914c2f1dfa9a6a",
"slug":"3383590",
"image":"/public/uploads/cinema/8c926c1344dae65a03dcdbf1acb71a10.jpg",
"__v":0
}
}
我给你的链接会给你这个答案:别忘了在 this 前面加上 required 。
// To parse this JSON data, do
//
// final stackOverflow = stackOverflowFromJson(jsonString);
import 'dart:convert';
StackOverflow stackOverflowFromJson(String str) => StackOverflow.fromJson(json.decode(str));
String stackOverflowToJson(StackOverflow data) => json.encode(data.toJson());
class StackOverflow {
StackOverflow({
this.success,
this.data,
});
bool success;
Data data;
factory StackOverflow.fromJson(Map<String, dynamic> json) => StackOverflow(
success: json["success"],
data: Data.fromJson(json["data"]),
);
Map<String, dynamic> toJson() => {
"success": success,
"data": data.toJson(),
};
}
class Data {
Data({
this.name,
this.description,
this.videoLink,
this.date,
this.status,
this.id,
this.slug,
this.image,
this.v,
});
Description name;
Description description;
String videoLink;
DateTime date;
bool status;
String id;
String slug;
String image;
int v;
factory Data.fromJson(Map<String, dynamic> json) => Data(
name: Description.fromJson(json["name"]),
description: Description.fromJson(json["description"]),
videoLink: json["videoLink"],
date: DateTime.parse(json["date"]),
status: json["status"],
id: json["_id"],
slug: json["slug"],
image: json["image"],
v: json["__v"],
);
Map<String, dynamic> toJson() => {
"name": name.toJson(),
"description": description.toJson(),
"videoLink": videoLink,
"date": date.toIso8601String(),
"status": status,
"_id": id,
"slug": slug,
"image": image,
"__v": v,
};
}
class Description {
Description({
this.uz,
this.ru,
});
String uz;
String ru;
factory Description.fromJson(Map<String, dynamic> json) => Description(
uz: json["uz"],
ru: json["ru"],
);
Map<String, dynamic> toJson() => {
"uz": uz,
"ru": ru,
};
}
然后,当您从服务器获得正确答案时,您需要执行以下操作:
//r is my api response
if (r.statusCode >= 200 && r.statusCode < 300) {
final String responseString = r.body;
StackOverflow res = stackOverflowFromJson(responseString);
// get what you want with res.<thing you want to access>
}
推荐阅读
- arrays - Google App Script返回每列带有url的二维数组
- performance - iText 7 PDF 文档生成性能问题
- r - R(v3.6.1)如何确定奇数底值的舍入?
- mysql - 如何从此表中选择多个实例?
- python - pygame TypeError: Rect 参数无效
- angular - 如何将依赖项注入Angular 8中的类
- woocommerce - woocommerce 在产品页面上显示标签描述
- api - Solr 7.5 自动缩放历史 API
- flutter - 通过授予“构建方法”权限进行颤振,但仍然无法打开多图像选择器……而它在“调试和运行 --release 方法”中工作……为什么?
- wordpress - 网站不断重定向到旧的 wordpress url