我有一个产品,我想在其中使用相同的数据表。我必须使用“id”过滤这个表。
我试图在 fetchNotes() id = "XPTO68" 上过滤这个 json。
有什么想法吗?
{
"segmento": "Caminhões e Ônibus",
"montadora": "MONTADORA",
"veiculo": "7000",
"motor": "MWM 4.10T",
"anoinicial": "1994",
"anofinal": "2005",
"id": "XPTO68",
"obs": "Engrenagem 15°",
"descricao": "Bomba D´Água",
"imagem": "XPTO6*.png"
},
{
"segmento": "Caminhões e Ônibus",
"montadora": "MONTADORA",
"veiculo": "7000",
"motor": "MWM 4.10T",
"anoinicial": "1994",
"anofinal": "2005",
"id": "XPTO69",
"obs": "Engrenagem 15°",
"descricao": "Bomba D´Água",
"imagem": "XPTO69.png"
},
我可以在这里做什么?
Future<List<Note>> fetchNotes() async {
var data = await DefaultAssetBundle.of(context)
.loadString('assets/json/produtos.json');
var body = json.decode(data);
var notes = List<Note>();
for (var noteJson in body) {
notes.add(Note.fromJson(noteJson));
}
return notes; }
答案 0 :(得分:0)
只需将您需要过滤的 id 传递给您的函数并签入循环:
Future<List<Note>> fetchNotes({List<String> filterIds = const []}) async {
var data = await DefaultAssetBundle.of(context)
.loadString('assets/json/produtos.json');
var body = json.decode(data);
var notes = List<Note>();
for (var noteJson in body) {
final note = Note.fromJson(noteJson);
if (filterIds.contains(note.id))
continue;
notes.add(note);
}
return notes;
}
然后调用这个函数:
final notes = await fetchNotes(filterIds: ["XPTO68"]);