这就是我的JSON的样子
{
"main_object": {
"id": "new",
"getExerciseTitle": "TestToConfirm",
"language": "nl_NL",
"application": "lettergrepen",
"main_object": {
"title": "TestToConfirm",
"language": "nl_NL",
"exercises": [
{
"word": "huisarts",
"syllables": [
"huis",
"arts"
]
}
]
},
"dataType": "json"
}
}
这是我抓取getExerciseTitle
的方式:
var ID = getUrlParameter("id");
var MEDIAARRAY;
//console.log(ID);
$(document).ready(function () {
$.getJSON('json_files/jsonData_' + ID + '.json', function(json) {
//console.log(json);
var exercisetitle = json.main_object.getExerciseTitle;
$("#getExerciseTitle").html(exercisetitle);
createExercise(json);
});
});
这就是我试图获取words
的方式(但这不起作用,我想知道这是怎么回事?
function createExercise(json) {
var exWord = json.main_object.main_object.exercises.word;
$.each(exWord, function(data, value) {
console.log(exWord);
});
}
我的console.log()
没有显示任何错误,因为我使用相同的方法获取exercisetitle
,所以我不知道自己做错了什么。
答案 0 :(得分:1)
由于json.main_object.main_object.exercises
是数组,因此没有word
属性。它有一个对象作为唯一的条目,该对象具有word
,而不是数组:
var exWord = json.main_object.main_object.exercises[0].word;
// ------------------------------------------------^^^
或循环:
json.main_object.main_object.exercises.forEach(function(exercise) {
var exWord = exercise.word;
// ...
});
答案 1 :(得分:1)
exercises
是一个数组,而不是一个对象。您必须访问数组的元素才能访问具有word
属性的对象。
function createExercise(json) {
const exercises = json.main_object.main_object.exercises;
exercises.forEach(function(exercise) {
console.log(exercise.word);
});
}
答案 2 :(得分:1)
var json = {
"main_object": {
"id": "new",
"getExerciseTitle": "TestToConfirm",
"language": "nl_NL",
"application": "lettergrepen",
"main_object": {
"title": "TestToConfirm",
"language": "nl_NL",
"exercises": [
{
"word": "huisarts",
"syllables": [
"huis",
"arts"
]
}
]
},
"dataType": "json"
}
}
$(document).ready(function () {
var exercisetitle = json.main_object.getExerciseTitle;
$("#getExerciseTitle").html(exercisetitle);
var r = json.main_object.main_object.exercises;
$.each(r,function(data,value){
console.log(data,value.word)
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='getExerciseTitle'></div>
因为您试图访问数组元素而不让代码知道元素的索引。