首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按关键字搜索JSON键

按关键字搜索JSON键
EN

Stack Overflow用户
提问于 2017-04-07 20:37:50
回答 2查看 41关注 0票数 0

我有一个这样的JSON列表:

代码语言:javascript
复制
{
    "StatTrak™ AK-47 | Fire Serpent (Field-Tested)": 701,
    "StatTrak™ AK-47 | Fire Serpent (Minimal Wear)": 1050,
    "StatTrak™ AK-47 | Fire Serpent (Well-Worn)": 450.15,
    "StatTrak™ AK-47 | Fire Serpent (Factory New)": 3300,
    "AK-47 | Fire Serpent (Field-Tested)": 195.8,
    "StatTrak™ AK-47 | Fire Serpent (Battle-Scarred)": 369.58,
    "AK-47 | Fire Serpent (Factory New)": 750,
}

如果用户在框中键入example:ak fire serpent,则它将仅返回所有ak fire serpents

以下是我尝试使用的代码:

代码语言:javascript
复制
var itemWanted = 'ak fire serpent';
    var message = itemWanted.split(" ");
    for(var price in prices){
        var splitfast = price.split(" ");
        if(price.toLowerCase().includes(message[1].toLowerCase())){
            if(splitfast[1].toLowerCase().includes(message[0].toLowerCase())){
                console.log(price + ' - ' + prices[price]);
            }
        }
    }

它拆分用户消息并试图找到它,但它现在会尝试按名称fire进行搜索,例如,其中有大约30个名称为fire的项目,所以我添加了检查武器类型的代码的第二部分,但随后它只返回给我StatTrak,因为它检查1,所以最好的方法是什么,因为拆分似乎不起作用。

EN

回答 2

Stack Overflow用户

发布于 2017-04-07 23:12:55

显然,我不知道您从哪里获得JSON文件,但是如果您有机会在不花费大量精力的情况下稍微更改一下JSON格式,我会尝试构建稍微“智能”一点的JSON结构。

例如:

代码语言:javascript
复制
{
    "Weapon Type": {
       "StatTrak™ AK-47" : {
             "Fire Serpent": {
                 "(Field-Tested)": 1050,
                 "(Factory New)" : 50
             }
       }
       "AK-47" : 
             "Fire Serpent": {
                 "(Field-Tested)": 1050,
                 "(Factory New)" : 50
             }
        }
}

它可能会帮助您以更流畅和直观的方式浏览JSON文件。

票数 0
EN

Stack Overflow用户

发布于 2017-04-07 23:18:47

您可以像下面的示例一样,非常容易地遍历对象的键,并查看是否找到任何匹配项:

代码语言:javascript
复制
var json = {
  'apple pear banana': 1,
  'apple peach banana': 2,
  'apple grape banana': 3,
  'apple pear peach': 4,
  'apple grape peach': 5,
}
var matches = 'peach grape'.split(' ');
var result = Object.keys( json ).filter(function( key ){
  return !!(matches.find(function( match ){
    return key.indexOf( match ) >= 0
  }));
});

console.log( result, result.map(key => json[key]) );

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43278372

复制
相关文章

相似问题

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