Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Menampilkan data json dengan future builder flutter
saya ingin menampilkan data json dari sebuah kolom di database, tapi datanya tidak muncul saat selesai di build. ini kode user_page.dart nya
FutureBuilder(
future: ActivityController.getActivity(_selectedUser),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text("Aktivitas user"),
Text(snapshot.data["activity"].toString()),
],
);
}
else {
return Center(
child: Text("No data displayed"),
);
}
},
),
disini saya pake webservice jadi ini untuk controller di api nya activity.php
public function getActivity($data){
// $user = $this->getUser();
$sql = "SELECT * FROM logs.user_activities WHERE id_user= @id ORDER BY created_at DESC";
$parameter["@id"] = $data["id"];
//return $this->queryFirst($sql, $parameter);
return $this->queryArray($sql, $parameter);
}
untuk queryArray nya ada di library api. waktu saya send request di function getActivity nya data nya muncul berupa json, tapi saat build interface nya tidak muncul/no data displayed. mohon bantuanya!!??
1 Jawaban:
Mohon Sertakan output JSONnya...
oh iya, sedikit tips aja, buat PODO (Plain old dart object) dengan https://app.quicktype.io/ untuk mempermudah memanggil field JSON...
Misal dari JSON berikut <pre> { "key 1": "nilai 1", "key 2": 2, "key 3": true, "key 4": null } </pre>
maka akan jadi
<pre> class Contoh { String key1; int key2; bool key3; dynamic key4;
Contoh({
this.key1,
this.key2,
this.key3,
this.key4,
});
factory Contoh.fromJson(Map&lt;String, dynamic&gt; json) =&gt; Contoh(
key1: json["key 1"],
key2: json["key 2"],
key3: json["key 3"],
key4: json["key 4"],
);
Map&lt;String, dynamic&gt; toJson() =&gt; {
"key 1": key1,
"key 2": key2,
"key 3": key3,
"key 4": key4,
};
} </pre>
untuk menggunakannya cukup <pre> Contoh objContoh = Contoh.fromJson(jsonObj);
print(objContoh.key1); </pre>