Javascript 如何在React native中从JSON常量中提取数据
我有一个函数,可以从Google location Services API检索JSON格式的位置数据,并将数据存储到Javascript 如何在React native中从JSON常量中提取数据,javascript,json,reactjs,react-native,Javascript,Json,Reactjs,React Native,我有一个函数,可以从Google location Services API检索JSON格式的位置数据,并将数据存储到locationconst中。它检索的数据如下所示: { "mocked":false, "timestamp":11507048000, "coords":{ "speed":0, "heading":0, "accuracy":52.086999893188477, "altitude":3, "longitude":-51
location
const中。它检索的数据如下所示:
{
"mocked":false,
"timestamp":11507048000,
"coords":{
"speed":0,
"heading":0,
"accuracy":52.086999893188477,
"altitude":3,
"longitude":-51.084,
"latitude":14.183
}
}
所以我想基本上访问和提取里面的数据。例如,获取纬度值并将其分配给变量
提前谢谢
查找坐标功能:
findCoordinates = () => {
if (!this.state.locationPermission) {
this.state.locationPermission = requestLocationPermission();
}
Geolocation.getCurrentPosition(
position => {
const location = JSON.stringify(position);
this.setState({ location });
},
error => {
Alert.alert(error.message);
},
{
enableHighAccuracy: true,
timeout: 20000,
maximumAge: 1000
}
);
};
您可以使用下面的代码在状态中设置一个新对象
get_Lat_User() {
Geolocation.getCurrentPosition(
(position) => {
var lat = parseFloat(position.coords.latitude)
var longi = parseFloat(position.coords.longitude)
var initialRegion = {
latitude: lat,
longitude: longi,
longitudeDelta: 0.01 * ASPECT_RATIO,
latitudeDelta: 0.01
}
console.log("position", position)
this.setState({ my_region: initialRegion })
},
(error) => {
console.log(error.message);
},
{ enableHighAccuracy: false, showLocationDialog: true, timeout: 20000, maximumAge: 1000 },
);
}
在setstate的回调中,尝试以下操作
this.setState({ location },() =>{
var data = this.state.location.coords.latitude;
console.log(data)
});
您的代码
this.setState({location})
将分解对象的结构,因此要访问例如时间戳
,您需要调用this.state.timestamp
如果要将位置另存为单独的属性,请使用:
this.setState({ location: location });
这样您就可以调用This.state.location.
请记住,setState()是一个异步函数,因此您可能无法立即使用该位置,除非您执行以下操作:
const loc;
this.setState({location:location}, () => {
loc = this.state.location
});
未定义的结果!var data=this.state.location.coords.latitude?undefined不是对象(计算'this.state.location.coords.latitude')回调中的位置返回什么?