如何读取JSON格式的对象并将其与用户输入的输入进行比较

How to read objects in JSON format & compare it to a user entered input?

本文关键字:输入 比较 用户 对象 何读取 读取 格式 JSON      更新时间:2023-09-26

我正在尝试制作一个应用程序,其中某些值以 JSON 格式存储,我想使用索引而不是硬编码来访问这些值。我的HTML文件和javascript是:

<html>
<head>
    <title> My Dictionary </title>
    <script type="text/javascript">
    function search(){
        var myDictionary = 
        {"Apple": 
           {"Meaning": "Fruit", "Category": "Sweet", "Pronounciation": "Apple"} 
           ,
        "Apples":
           {"Meaning": "Fruit", "Category": "Sweet", "Pronounciation": "Apple"}}
        };
        var v= document.getElementById("search").value;
    }
    </script>    
</head>          
<body>           
    Enter your Text: <input type="text" id="search" name="search"  />
    <input type="button" value="search" onclick="search();" />
</body>
</html>

我想将用户输入的值与 JSON 格式的数据进行比较。例如。如果用户输入了"Apples",那么我如何使用数组中的值进行检查?

我不确定这是否是最有效的方法,但这是一种方法:您可以遍历 myDictionary 数组并使用typeof和括号表示法的组合检查属性是否存在v。下面是一个示例:

var result;
for (var i=0; i<myDictionary.length; i++)
{
    if (typeof myDictionary[i][v] === "object")
    {
        result = myDictionary[i];
        break;
    }
}

我将你的myDictionary对象复制到我的控制台中,将v设置为"Apple",运行我的代码,结果成功包含Apple对象。需要注意的是,JavaScript 变量/属性区分大小写,因此如果用户输入"apple"而不是"Apple",您将不会得到结果。管理此问题的最简单方法是确保所有字典关键字都是小写的,并使用 v.toLowerCase()

让我知道您的想法,或者如果您有任何问题:)