我正在通过JSON对象阅读,尝试循环显示文本并创建文本的子字符串。出于某种原因,这是因为“无法读取未定义的属性”角色。“我错过了什么?未定义JavaScript中的JSON值错误
// target language text
var text1 = obj[0].tgtLanguageSentences[0].text;
var strArry1 = [];
var colorArr1 = ["DarkSalmon", "ForestGreen", "Brown"];
for(var t=0; t<obj[0].tgtLanguageSentences[0].roles.length; t++)
{
// create variables representing substrings of the Source language Sentence
var tgt1 = text1.substring((obj[t].tgtLanguageSentences[t].roles[t].beginOffset - obj[t].tgtLanguageSentences[t].roles[t].beginOffset),(obj[t].tgtLanguageSentences[t].roles[t].beginOffset - 1));
var tgt2 = text1.substring(obj[t].tgtLanguageSentences[t].roles[t].beginOffset,obj[t].tgtLanguageSentences[t].roles[t].endOffset);
var tgt3 =
text1.substring(obj[t].tgtLanguageSentences[t].roles[t].endOffset,obj[t].tgtLanguageSentences[t].text.length);
strArry.push('<h4>'+tgt1+'</h4>');
strArry.push('<h4>'+'<font color="'+colorArr1[i]+'">"'+tgt2+'</font>'+'</h4>');
if(i == obj[0].tgtLanguageSentences[0].roles[0].length-1)
{
strArry.push('<h4>'+tgt3+'</h4>');
}
text1 = s3;
}
请参阅JSON对象在下面引用:
[
{
"description": "",
"roles": [
{
"name": "thing commented on"
},
{
"name": "commentor"
}
],
"srcLanguageSentence": {
"roles": [
{
"beginOffset": 23,
"endOffset": 30,
"name": "thing commented on",
"text": "on them"
},
{
"beginOffset": 5,
"endOffset": 7,
"name": "commentor",
"text": "We"
}
],
"text": " `` We wo n't comment on them . '' ",
"verb": {
"beginOffset": 15,
"endOffset": 22,
"text": "comment"
}
},
"tgtLanguageSentences": [
{
"roles": [
{
"beginOffset": 1,
"endOffset": 31,
"name": "thing commented on",
"text": "Weitere Aspekte der Kommission"
},
{
"beginOffset": 44,
"endOffset": 47,
"name": "commentor",
"text": "ich"
},
{
"beginOffset": 48,
"endOffset": 55,
"name": "negation",
"text": "nicht ."
}
],
"text": " Weitere Aspekte der Kommission kommentiere ich nicht . ",
"verb": {
"beginOffset": -1,
"endOffset": -1,
"sense": "COMMENT, intransitive",
"text": "kommentieren"
}
}
],
"verb": "KOMMENTIEREN"
}
]
无法读取未定义**的属性'roles'在什么行和位置**? –
'tgtLanguageSentences [t] .roles [t]'?你确定你需要为两个数组使用完全相同的索引?这是...不寻常的... –
在我看来,它应该是'obj [0] .tgtLanguageSentences [0] .roles [t]'。只是猜测基于for循环去'obj [0] .tgtLanguageSentences [0] .roles'的长度。 –