如何为移动应用项目创建正确的json文件



我不太熟悉JSON,我正试图为我的Flutter移动应用程序项目创建本地JSON文件。

我计划设计我的手机应用程序的方式是,我将在我的主页上显示一个类型列表。当用户点击一个特定的音乐类型时,它会进入一个新的屏幕,在那里它会显示属于该音乐类型的所有歌曲列表。

我还会有另一个屏幕呼叫"所有歌曲"它会显示所有id为order的歌曲

我已经根据我的知识创建了这个基本的JSON文件,如果有人可以审查,我将非常感激,如果这将工作,或者我可能需要修改它。

任何帮助或建议都将非常感谢。

[
{
"id": 0,
"pageNumber": 1,
"songNumber": "1",
"title": "Acadian Driftwood",
"genre": "Jazz",
"favorite": false
},
{
"id": 1,
"pageNumber": 2,
"songNumber": "2",
"title": "Alfie",
"genre": "Musical/Film",
"favorite": false
},
{
"id": 2,
"pageNumber": 3,
"songNumber": "3",
"title": "Ace Of Spades",
"genre": "Rock/Pop",
"favorite": true
},
{
"id": 3,
"pageNumber": 4,
"songNumber": "4",
"title": "Alison",
"genre": "Rock/Pop",
"favorite": false
},
{
"id": 4,
"pageNumber": 5,
"songNumber": "5",
"title": "Alabamy Bound",
"genre": "Musical/Film",
"favorite": true
}
]

使用本网站最好直接从JSON响应中创建一个文件,或者您可以使用android studio中的插件jsonToDart

{
"data":[
{
"id": 0,
"pageNumber": 1,
"songNumber": "1",
"title": "Acadian Driftwood",
"genre": "Jazz",
"favorite": false
},
{
"id": 1,
"pageNumber": 2,
"songNumber": "2",
"title": "Alfie",
"genre": "Musical/Film",
"favorite": false
},
{
"id": 2,
"pageNumber": 3,
"songNumber": "3",
"title": "Ace Of Spades",
"genre": "Rock/Pop",
"favorite": true
},
{
"id": 3,
"pageNumber": 4,
"songNumber": "4",
"title": "Alison",
"genre": "Rock/Pop",
"favorite": false
},
{
"id": 4,
"pageNumber": 5,
"songNumber": "5",
"title": "Alabamy Bound",
"genre": "Musical/Film",
"favorite": true
}
]
}

这是创建json文件的正确方法

在这种情况下,您可以使用Model来帮助您,然后您可以创建一个模型列表并将其传递到下一页。

下面的是一个你可以在你的应用程序中使用的模型:

import 'dart:convert';
Song songFromJson(String str) => Song.fromJson(json.decode(str));
String songToJson(Song data) => json.encode(data.toJson());
class Song {
Song({
this.id,
this.pageNumber,
this.songNumber,
this.title,
this.genre,
this.favorite,
});
int id;
int pageNumber;
String songNumber;
String title;
String genre;
bool favorite;
factory Song.fromJson(Map<String, dynamic> json) => Song(
id: json["id"],
pageNumber: json["pageNumber"],
songNumber: json["songNumber"],
title: json["title"],
genre: json["genre"],
favorite: json["favorite"],
);
Map<String, dynamic> toJson() => {
"id": id,
"pageNumber": pageNumber,
"songNumber": songNumber,
"title": title,
"genre": genre,
"favorite": favorite,
};

}

最新更新