我试图通过JSON值进行解析,并解析我需要的东西。
基本上,我只想捕获被表示为"Most_Likely“的值。
此外,如果有OR语句,我需要分离出这些值。
下面是我尝试这样做的尝试,但我得到了一个JS错误:
for (i = 0; i < obj1.Summary.length; i++) {
for (j in obj1.Summary[i]) {
if (j.indexOf('Most_Likely') && obj1.Summary[i][j].indexOf('|OR|') >= 0){
var tempvalue = obj1.Summary[i][j].indexOf('Most_Likely').split(" |OR| ");
attributesvalues.push(tempvalue);
alert(attributesvalues);
}
else{
//do nothing
}
}
}//示例JSON
var obj1 = {
"Summary" :
[
{
"host:Most_Likely" : "www.google.com",
"host:Indicative" : "www.yahoo.com |OR| www.google.com",
"term:Most_Likely" : "cars" |OR| new cars |OR| SUVs,
"term:Indicative" : "automatic |OR| Lexus |OR| SUVs |OR| Civic"
}
]
};发布于 2014-12-09 18:37:29
这一行中的错误
var tempvalue = obj1.Summary[i][j].indexOf('Most_Likely').split(" |OR| ");indexOf返回位置(类型号),split在String对象中,这就是您获得错误的原因。
var attributesvalues = [],
tempvalue;
for (var i = 0; i < obj1.Summary.length; i++) {
for (var j in obj1.Summary[i]) {
if (j.indexOf('Most_Likely') >= 0 && obj1.Summary[i][j].indexOf('|OR|') >= 0) {
tempvalue = obj1.Summary[i][j].split(" |OR| ");
attributesvalues.push(tempvalue);
} else {
}
}
}
console.log(attributesvalues);发布于 2014-12-09 18:38:30
如前所述,我在这里看到了一些潜在的问题。
j.indexOf('Most_Likely')作为布尔条件的一部分。如果找不到元素,indexOf返回-1,这被认为是特鲁西。您可能希望这个阅读j.indexOf('Most_Likely') !== -1。obj1中,term:Most_Likely的值是"chars" |OR| new cars |OR| SUVs。在我看来,你似乎过早地终止了你的字符串,这让JS想知道,“这都是什么呢?”split:obj1.Summary[i][j].indexOf('Most_Likely').split(" |OR| ")。如前所述,indexOf返回一个项所在的索引。如果您从这一行中删除indexOf位,它可能会做您希望它做的事情。https://stackoverflow.com/questions/27386151
复制相似问题