javascript - 如何在 JSON 中提取嵌套值并初始化为 JS 变量
问题描述
我的问题在上面,我试图用 45 分钟来提取下面“距离”下的值,但每次尝试都失败了。我希望你们能帮助我。
{
"destination_addresses": [
"XXXXXXXX 60, 13XXX Berlin, Germany"
],
"origin_addresses": [
"XXXXXXX Str. 67, 10XXX Berlin, Germany"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "10.4 km",
"value": 10365
},
"duration": {
"text": "21 min",
"value": 1278
},
"status": "OK"
}
]
}
],
"status": "OK"
}
所以我需要行下的值->元素->距离然后是值。我在 JavaScript 中尝试过这样的事情:
var payload = JSON.parse(body)
console.log(payload.rows["elements"].distance.value)
谢谢!:)
苏莱曼·德米尔
解决方案
let distance = payload.rows[0].elements[0].distance.value
console.log(payload)
console.log(distance)
请注意,数据是嵌套数组和对象的混合,它们是 javascript 中的不同数据结构。您可以通过键入对象的名称、后跟一个点和属性的名称 ( object_name.property_name ) 来访问对象的属性。您可以通过在数组名称(array_name[element_number])旁边的方括号中键入元素索引来访问数组的元素。
在我们的例子中,我们访问属性“rows”,它是对象“payload”的数组 - payload.rows。然后我们通过在属性名称旁边键入 [0] 访问该数组的元素编号 [0] - payload.rows[0]。我们得到另一个对象,其中包含“元素”属性 - payload.rows[0].elements。这个属性存储了另一个数组,我们再次访问它的第一个元素 - payload.rows[0].elements[0]。我们得到另一个对象并访问属性“distance”,它最终返回返回另一个包含我们正在寻找的属性“value”的对象 - payload.rows[0].elements[0].distance.value
推荐阅读
- apache-spark - Spark抛出AnalysisException:未定义的函数:内置函数的“计数”
- django - AUTH_USER_MODEL 是指尚未为自定义身份验证后端安装的模型“base.User”
- nginx - 如何修复 Kubernetes Ingress Controller 切断集群中的节点
- unity3d - 如何更改 HDRP 材质着色器类型中的材质偏移?
- c++ - 如何将 std::function 的零个或多个参数用作 std::map 中的值?
- android - 更新时RecyclerView重叠数据
- r - 如何在 R 中做 Countifs
- c++ - 如何将整数值作为 mex 函数的输入传递?
- nginx - Kubernetes Networkpolicy 没有按预期工作
- c++ - 如何在c ++中反转十六进制的顺序