javascript - 如何访问此 JSON 字符串中的某些值?
问题描述
这是我的 JSON 输出。这是来自 API 的响应。我需要访问到达时间。我发现在 Javsacript 和 Jquery 中成功执行此操作的唯一方法是这样做是否有更简单的方法来访问这些数据?
JSON输出:
{
"routes": [
{
"id": "f8b5d90a-d2b5-4149-b058-087c27e52fd0",
"sections": [
{
"id": "c16d58b7-7e2a-4ded-b8b7-96972d4ab0e4",
"type": "vehicle",
"departure": {
"time": "2021-03-02T18:00:00+10:00",
"place": {
"type": "place",
"location": {
"lat": -27.4526753,
"lng": 153.0426484
},
"originalLocation": {
"lat": -27.45263,
"lng": 153.0423499
}
}
},
"arrival": {
"time": "2021-03-02T18:09:48+10:00",
"place": {
"type": "place",
"location": {
"lat": -27.4396845,
"lng": 153.0693942
},
"originalLocation": {
"lat": -27.4397501,
"lng": 153.06963
}
}
},
"transport": {
"mode": "car"
}
}
]
}
]
}
var totalTime
data = {
"routes": [
{
"id": "f8b5d90a-d2b5-4149-b058-087c27e52fd0",
"sections": [
{
"id": "c16d58b7-7e2a-4ded-b8b7-96972d4ab0e4",
"type": "vehicle",
"departure": {
"time": "2021-03-02T18:00:00+10:00",
"place": {
"type": "place",
"location": {
"lat": -27.4526753,
"lng": 153.0426484
},
"originalLocation": {
"lat": -27.45263,
"lng": 153.0423499
}
}
},
"arrival": {
"time": "2021-03-02T18:09:48+10:00",
"place": {
"type": "place",
"location": {
"lat": -27.4396845,
"lng": 153.0693942
},
"originalLocation": {
"lat": -27.4397501,
"lng": 153.06963
}
}
},
"transport": {
"mode": "car"
}
}
]
}
]
}
$.each(data, function(i,value){
totalTime = value[0]['sections']['0']['arrival']['time'];
});
$('#results').text(totalTime);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label id = "results"></label>
解决方案
你不需要$.each()
。只需使用data.routes
.
这个硬编码[0]
索引假定您感兴趣的时间总是在第一条路线的第一部分。
data = {
"routes": [{
"id": "f8b5d90a-d2b5-4149-b058-087c27e52fd0",
"sections": [{
"id": "c16d58b7-7e2a-4ded-b8b7-96972d4ab0e4",
"type": "vehicle",
"departure": {
"time": "2021-03-02T18:00:00+10:00",
"place": {
"type": "place",
"location": {
"lat": -27.4526753,
"lng": 153.0426484
},
"originalLocation": {
"lat": -27.45263,
"lng": 153.0423499
}
}
},
"arrival": {
"time": "2021-03-02T18:09:48+10:00",
"place": {
"type": "place",
"location": {
"lat": -27.4396845,
"lng": 153.0693942
},
"originalLocation": {
"lat": -27.4397501,
"lng": 153.06963
}
}
},
"transport": {
"mode": "car"
}
}]
}]
}
var totalTime = data.routes[0].sections[0].arrival.time;
$('#results').text(totalTime);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label id="results"></label>
推荐阅读
- ios - 快速组合枚举
- javascript - 如何确保工作不会在 Bull 中运行两次?
- c# - 将 sp_MSForEachTable 与 SqlDataReader 一起使用
- jquery - 使用 Flex Box 将多个图像堆叠在一起
- react-native - 将 ReactNative 屏幕/视图导出为 PDF
- ruby-on-rails - 如何将 first_or_create 方法添加到 factory_bot
- javascript - 如何避免对 moment.js 的“弃用警告”?
- html - 处理两个父母之间的文本
- html - SVG 被推出 flexbox 容器的视口
- javascript - React.js 中正确的编码结构?