javascript - 如何在 JSON 对象中搜索特定字符串值?

标签 javascript html arrays json

我想搜索 JSON 对象以检查它是否包含存储在数组中的字符串值。并找出父元素。

var searchVal = ['name_1a','name_2y','name_3x'];

var json = {
"location": {
        "title1x": {
            "1": "name_1x",
            "2": "name_2x",
            "3": "name_3x",
        },
       "title2y": {
            "1": "name_1y",
            "2": "name_2y",
            "3": "name_3y",
        },
    }

    "object": {
        "title1a": {
            "1": "name_1z",
            "2": "name_2z",
            "3": "name_3z",
        },
       "title2b": {
            "1": "name_1a",
            "2": "name_2a",
            "3": "name_3a",
        },
    }
};

我想将结果传递到函数中。并分别处理它们。

name_1a -> function(title2b, object)
name_2y -> function(title2y, object)
name_3x -> function(title1x, location) etc.

。 这是我到目前为止所尝试过的。我似乎不知道如何遍历整个 JSON 对象

var searchVal = ['name_1a','name_2y','name_3x'];
  for (var i=0 ; i < searchVal.length ; i++){
    for (var k=0 ; k < ????.length ; k++)
    {
      if (json.???????? == searchVal[i]) {
        results.push(???????);
        console.log(results);

      }
    }
  }

最佳答案

使用下面的代码,您可以递归地找到您要查找的内容:

var json = {
    "location": {
        "title1x": {
            "1": "name_1x",
            "2": "name_2x",
            "3": "name_3x",
        },
       "title2y": {
            "1": "name_1y",
            "2": "name_2y",
            "3": "name_3y",
        },
    },
    "object": {
        "title1a": {
            "1": "name_1z",
            "2": "name_2z",
            "3": "name_3z",
        },
       "title2b": {
            "1": "name_1a",
            "2": "name_2a",
            "3": "name_3a",
        },
    }
};

var searchTest = function(varToSearch, jsonData) {

    for (var key in jsonData) {
        if(typeof(jsonData[key]) === 'object') {
            searchTest(varToSearch, jsonData[key]);
        } else {
            if(jsonData[key] == varToSearch) {
                console.log(jsonData[key]);
            }
        }
    }

}

searchTest('name_1a', json);

引用:

get data from dynamic key value in json

get value from json with dynamic key

https://trinitytuts.com/tips/get-dynamic-keys-from-json-data/

How do I enumerate the properties of a JavaScript object?

Check if a value is an object in JavaScript

关于javascript - 如何在 JSON 对象中搜索特定字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41125675/

相关文章:

javascript - 验证是否所有复选框都未选中的快速方法?

ios - Swift Dictionary 为同一个键返回不同的对象

java - 数组索引越界

python - 如何对数据框中某些列和行的数据求和?

javascript - Grunt/Babel 错误 : Unable to write "dist" file (Error code: EISDIR)

javascript - jQuery/CSS : div positions

javascript - 使用 Javascript 将按钮值传递给文本区域值

jquery - 滚动子 div 不应滚动父 div

html - CSS::.className 和 div.className 的区别

html - 是否可以在 Flexbox 中再包含一个 Flexbox?