首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果包含"Most_Likely“,如何分割JSON值?

如果包含"Most_Likely“,如何分割JSON值?
EN

Stack Overflow用户
提问于 2014-12-09 18:27:23
回答 2查看 54关注 0票数 2

我试图通过JSON值进行解析,并解析我需要的东西。

基本上,我只想捕获被表示为"Most_Likely“的值。

此外,如果有OR语句,我需要分离出这些值。

下面是我尝试这样做的尝试,但我得到了一个JS错误:

代码语言:javascript
复制
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

代码语言:javascript
复制
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" 
        }
    ]
 };
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-09 18:37:29

这一行中的错误

代码语言:javascript
复制
var tempvalue = obj1.Summary[i][j].indexOf('Most_Likely').split(" |OR| ");

indexOf返回位置(类型号),split在String对象中,这就是您获得错误的原因。

代码语言:javascript
复制
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);
票数 2
EN

Stack Overflow用户

发布于 2014-12-09 18:38:30

如前所述,我在这里看到了一些潜在的问题。

  1. j.indexOf('Most_Likely')作为布尔条件的一部分。如果找不到元素,indexOf返回-1,这被认为是特鲁西。您可能希望这个阅读j.indexOf('Most_Likely') !== -1
  2. 在您的示例obj1中,term:Most_Likely的值是"chars" |OR| new cars |OR| SUVs。在我看来,你似乎过早地终止了你的字符串,这让JS想知道,“这都是什么呢?”
  3. 您尝试在这一行的整数上调用splitobj1.Summary[i][j].indexOf('Most_Likely').split(" |OR| ")。如前所述,indexOf返回一个项所在的索引。如果您从这一行中删除indexOf位,它可能会做您希望它做的事情。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27386151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档