我已經做了各種方法來創建一個快取的產品串列然后顯示一個串列,但到現在仍然無法正常作業,任何人都可以幫助我
我的來自快取的 Json
"[{"id":"2911","nama":"Abcd1","url":"myUrl"},{"id":"2910","nama":"Abcd2","url":"myUrl"},{"id":"2911","nama":"Abcd3","url":"myUrl"},{"id":"2549","nama":"Abcd4","url":"myUrl"}]"
我的代碼
Future<List<ApiBookmark>> fetchApiBookmark() async {
var adaCache = await APICacheManager().isAPICacheKeyExist('bookmark');
if (adaCache) {
print('ada');
var cacheData = await APICacheManager().getCacheData('bookmark');
var fromCache = '[' cacheData.syncData ']';
List jsonResponse = fromCache as List;
return jsonResponse
.map((e) => ApiBookmark(id: e.id, nama: e.nama, url: e.url))
.toList();
} else {
print('tidak ada');
throw Exception('Failed to load bookmark');
}
}
class ApiBookmark {
final String id;
final String nama;
final String url;
const ApiBookmark({
required this.id,
required this.nama,
required this.url,
});
factory ApiBookmark.fromJson(Map<String, dynamic> json) {
return ApiBookmark(
id: json['id'],
nama: json['nama'],
url: json['url'],
);
}
}
uj5u.com熱心網友回復:
嘗試這個
List<ApiBookmark> listApi = <ApiBookmark>[];
Future<List<ApiBookmark>> fetchApiBookmark() async {
listApi.clear();
var fromCache = '''[{"id":"2911","nama":"Abcd1","url":"myUrl"},
{"id":"2910","nama":"Abcd2","url":"myUrl"},
{"id":"2911","nama":"Abcd3","url":"myUrl"},
{"id":"2549","nama":"Abcd4","url":"myUrl"}]''';
final jsonData = json.decode(fromCache);
for (var item in jsonData) {
listApi.add(ApiBookmark.fromJson(item));
}
for (var item in listApi) {
print("${item.id} ${item.nama} ${item.url}");
}
return listApi;
}
然后你可以實作“APICacheManager()”
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/433721.html
