如何从Json类型获取数据



我已经尝试了很长时间从Json本地文件获取数据。

现在我的代码是这样的:

static Future<String> loadJsonData() async {
var jsonText = await rootBundle.loadString('assets/Json/CDV.json');
data = json.decode(jsonText);
for(int i = 0; i < data.length; i++){
print(data[i]);
}

return 'success';
}

我得到:

{attributes: {FID: 2618, id: 2619, address: Banque Atlantique -阿比让-拉古内斯工业区Côte科特迪瓦,经度:-4.000757,纬度:5.265247},几何:{x: -4.000757, y:5.265247}} I/flutter(26638):{属性:{FID: 2619, id: 2620,地址:Prestige Auto Abidjan-Ville Lagunes Côte d'Ivoire,经度:-4.002028,纬度:5.266179},几何:{x: -4.002028, y:5.266179}} I/flutter(26638):{属性:{FID: 2620, id: 2621,地址:cique sociachiveridae Vridi阿比让-拉古内斯城Côte科特迪瓦,经度:-4.004049,纬度:5.268738},几何:{x: -4.004049, y: 5.268738}} I/flutter(26638):{属性:{FID: 2621, id: 2622,地址:banque Bicici - agent维里迪阿比让-维尔拉古内斯Côte科特迪瓦,经度:-4.013067,纬度:5.266223},几何:{x: -4.013067, y: 5.266223}}我/扑动(26638):{属性:{FID: 2622, id: 2623,地址:Bank of Africa(BOA) -阿比让-拉古内斯新闻社Côte科特迪瓦,经度:-4.008449,纬度:5.266771},几何:{x: -4.008449, y: 5.266771}}

我想从那个响应中提取那个地址列表,但是我无法到达它;

您需要像这样访问attributes然后addressdata[i]['attributes']['Adresse']

static Future<String> loadJsonData() async {
var jsonText = await rootBundle.loadString('assets/Json/CDV.json');
data = json.decode(jsonText);
for(int i = 0; i < data.length; i++){
print(data[i]['attributes']['Adresse']);
}

return 'success';
}
class Address {
final int FID;
final String addr;
Address(this.addr, this.FID);
Address.fromMap(Map m)
: this.addr = m["Adresse"],
this.FID = m["FID"];
}
static Future<List<Address>> loadJsonData() async {
var jsonText = await rootBundle.loadString('assets/Json/CDV.json');
data = json.decode(jsonText);
var list = [];
for(int i = 0; i < data.length; i++){
list.add(Address.fromMap(data[i]["attributes"]);
}

return list;
}

用同样的方法查看这里的答案或者你可以使用Google的flutter包json_serializable来获取json数据并序列化它

最新更新