You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用原生JavaScript实现输入JSON键名查询对应值的功能

实现方案

前置准备

将你持有的JSON数据源文件下载到本地,和HTML文件放在同一目录,重命名为data.json。
可选简化方案:如果不想单独维护JSON文件,可以直接把JSON内容复制到代码中,直接赋值给变量即可,无需额外请求。

完整修改后代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sono brillo</title>
</head>
<body>
    <h1>hello</h1>
    <input id="userInput"> <br> <br>
    <button onclick="myFunction()"> Run </button>
    <h1 id="message"> </h1>

    <style>
        body{background-color: darkblue; text-align: center; color: floralwhite;}
    </style>
    <script>
        // 存储JSON数据的全局变量
        let jsonData = {};

        // 页面加载完成后预加载JSON数据
        window.onload = async () => {
            try {
                // 如果是直接复制JSON内容到代码,直接把下面三行注释掉,改成 jsonData = 你的JSON对象即可
                const res = await fetch('./data.json');
                jsonData = await res.json();
            } catch (err) {
                console.error('JSON数据加载失败,请检查文件路径是否正确', err);
            }
        }

        function myFunction() {
            const inputKey = document.querySelector("#userInput").value.trim();
            const messageDom = document.querySelector("#message");

            // 匹配键对应的值
            if (jsonData.hasOwnProperty(inputKey)) {
                messageDom.textContent = jsonData[inputKey];
            } else {
                messageDom.textContent = '未找到对应数值,请检查输入的键名';
            }
        }
    </script>
</body>
</html>

改动说明

  • 新增页面加载时的JSON数据预加载逻辑,数据提前存入全局变量,避免每次点击按钮重复请求
  • 新增键存在性判断逻辑,输入不存在的键名时会给出友好提示
  • 对用户输入做了去空格处理,避免前后多余空格导致匹配失败
  • 用textContent替代innerHTML,避免恶意输入带来的XSS安全风险,如果你需要展示HTML格式的内容可以自行改回innerHTML
  • 若需要支持不区分大小写匹配,可将判断条件调整为jsonData.hasOwnProperty(inputKey.toLowerCase()),同时提前将所有JSON的键统一转为小写即可

内容的提问来源于stack exchange,提问作者Omer Faruk Kaymaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:15:08