Flutter Parse Json Returing Null



我的flutter项目解析json响应并返回null时出现问题。

尝试接收我输入的地址的纬度和经度值。当我打印出jsonresponse变量时,我得到了正确的数据,但当我试图解析json响应时,lat和lng都会导致null。我错过了什么?

检索lat/lng的void方法的一部分:

var response = await http.get(request);
var jsonresponse = response.body;
Location location = Location.fromJson(jsonDecode(jsonresponse));
print(location.lat);
print(location.lng);

要解析json:的位置类

class Location {
double lat;
double lng;
Location({this.lat, this.lng});
Location.fromJson(Map<String, dynamic> json) {
lat = json['lat'];
lng = json['lng'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['lat'] = this.lat;
data['lng'] = this.lng;
return data;
}
}

Json响应。正文:

"results": [
{
"location": {
"lat": 35.2323243,
"lng": -80.234353
}}]

您必须这样更改:

var response = await http.get(request);
var jsonresponseDecoded = jsonDecode(response.body);
Location location = Location.fromJson(jsonresponseDecoded[0]['location']);
print(location.lat);
print(location.lng);

它会起作用的。因为"results"给了您一个列表,而您的"location"数据位于该列表的索引[0]处。,在访问"之后;位置";,你会得到一张latlng的地图,请尝试并确认。

最新更新