javascript - 如何获取我的音节,以便我可以控制台记录它们
问题描述
JSON 看起来像这样:
{
"main_object": {
"id": "new",
"getExerciseTitle": "TestAfterCodeCleaning",
"language": "nl_NL",
"application": "lettergrepen",
"main_object": {
"title": "TestAfterCodeCleaning",
"language": "nl_NL",
"exercises": [
{
"word": "testikels",
"syllables": [
"test",
"ikels",
"",
""
]
}
]
},
"dataType": "json"
}
}
这就是我尝试获取的方式,syllables
以便我可以获取console.log()
它们:
var jsyl = json.main_object.main_object.exercises.syllables;
但是问题是:这显示在我的console.log()
未定义中。为什么以及如何?
完整的代码如下所示:
function prepareCheck() {
$.getJSON('json_files/jsonData_' + ID + '.json', function(json) {
$(document).on('keyup', '.syl-input', function() {
var syllableval = $(idsyll).val();
var jsyl = json.main_object.main_object.exercises.syllables;
});
});
}
注意:JSON 有一个syllables
,因为我认为它会更容易阅读,但是应该做些什么来获取所有syllables
(如果有一个以上的数组syllables
)。
解决方案
在这种情况下,使用exercises[0]
而不是exercises
因为exercises
是一个对象数组,在 index 处只有一个项目0
。
var jsyl = json.main_object.main_object.exercises[0].syllables;
var json = {
"main_object": {
"id": "new",
"getExerciseTitle": "TestAfterCodeCleaning",
"language": "nl_NL",
"application": "lettergrepen",
"main_object": {
"title": "TestAfterCodeCleaning",
"language": "nl_NL",
"exercises": [
{
"word": "testikels",
"syllables": [
"test",
"ikels",
"",
""
]
}
]
},
"dataType": "json"
}
}
var jsyl = json.main_object.main_object.exercises[0].syllables;
console.log(jsyl); // [ 'test', 'ikels', '', '' ]
推荐阅读
- java - Java - 12 小时到 24 小时格式 (hackerrank)
- linux - 在 Docker 容器下挂载 CIFS 不会影响主机挂载的卷
- java - 不能递归地对矩阵中的所有偶数求和
- python - 使用类型注释记录类属性
- azure-functions - 针对 Cosmos Db DocumentClient 的 Azure Function V2
- javascript - CSRF 到 getcitydetails jquery 函数
- vim - Vim vs 命令在第二个窗格中创建重复输出
- angular - Angular Http Get 404 停止进一步调用
- python - LightGBMError: b'Check failed: config->bagging_freq > 0 && config->bagging_fraction < 1.0f && config->bagging_fraction > 0.0f
- pointers - “指向接口的指针,而不是接口”