【发布时间】:2019-10-17 08:19:47
【问题描述】:
解码 json 时出现意外字符 
E/flutter (27537): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: FormatException: Unexpected character (at character 1)
E/flutter (27537): {"data":[{"kode_wilayah":"056001 ","nama":"Kec. Karang Pilang","mst_kod...
E/flutter (27537): ^
E/flutter (27537):
E/flutter (27537): #0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1392:5)
这里是代码
Future<List<Kecamatan>> getData() async {
List<Kecamatan> list;
String link =
"http://jendela.data.kemdikbud.go.id/api/index.php/CWilayah/wilayahGET/?mst_kode_wilayah=056000";
var res = await http
.get(Uri.encodeFull(link), headers: {"Accept": "application/json;charset=UTF-8", "Charset": "utf-8"});
print(res.body);
if (res.statusCode == 200) {
var data = json.decode(res.body);
var rest = data["data"] as List;
print(rest);
list = rest.map<Kecamatan>((json) => Kecamatan.fromJson(json)).toList();
}
print("List Size: ${list.length}");
return list;
}
//inside build function
final kec = FutureBuilder<List<Kecamatan>>(
future: getData(),
builder: (BuildContext context,
AsyncSnapshot<List<Kecamatan>> snapshot) {
if (!snapshot.hasData) return CircularProgressIndicator();
return DropdownButton<Kecamatan>(
items: snapshot.data
.map((camat) => DropdownMenuItem<Kecamatan>(
child: Text(camat.nama),
value: camat,
))
.toList(),
onChanged: (Kecamatan value) {
setState(() {
_selectedKec = value;
});
},
isExpanded: false,
//value: _currentCamat,
hint: Text('Pilih Kecamatan'),
);
});
有人知道如何删除这些字符吗?或者您可以告诉我另一种基于 json 创建下拉菜单的方法?
【问题讨论】: