javascript - 比较动态 JSON 文件 - JavaScript

标签 javascript jquery json

我已经阅读了有关 JSON 对象比较的各种问题,并且对我可以实现比较相对有信心。我的查询是关于将源 .json 文件动态加载到 JSON 对象中以进行比较。

我对该项目的范围进行了修改,以便按照给定的时间间隔检查动态加载的 .json 文件是否有更改。以前版本的应用程序不需要这样做,因此动态 .json 文件仅加载一次。以下是当前的实现(仅限单个 .json 文件)。

jsdata.json 文件:

var jsArray = [
    {
        "Value1": "Hello!",
        "Value2": "Second!"
    },
    {
        "Value3": "Third!",
        "Value4": "Last!"
    }
]

HTML 文件:

var jsScript = document.createElement('script');
jsScript.setAttribute('id', 'jsFile');
jsScript.setAttribute('src', 'jsdata.json');
document.head.appendChild(jsScript);

//psJSON is called, passing the x variable

function psJSON(x) {
    $(document).ready(function(e) {
        if (jsArray[x].Value1 == "Hello!") {
            alert("Hello!");
        } else {
            alert("Sorry!");
        }
    )};
}

当前代码可以很好地从 jsdata.json 文件中检索数据。但是,如果我要添加第二个 .json 文件,我将不知道如何单独处理这两个文件。

$(document).ready() 函数是最好的方法吗,还是有更好的方法?

最佳答案

首先不要将变量放入 .json 文件中。

您可以使用$.getJSON()来完成这项工作。这将返回一个 promise 。对您拥有的每个 json 文件执行一次此操作。然后使用 $.when() 等待所有问题都得到解决。

工作示例: http://plnkr.co/edit/dFVbzzqRaZ03gfN9GWEo

关于javascript - 比较动态 JSON 文件 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32215681/

相关文章:

android - 将 Twitter Fabric REST API 解析为 JSON 字符串

javascript 到 java 远程方法接口(interface)

javascript - 视频外部按钮无法在移动设备上播放,但可以在桌面/移动设备上播放

javascript - 如何在准确的时间运行谷歌应用程序脚本?

javascript - Bootstrap 模式在长列表中的位置

javascript - 使用 promise 发送带有参数(数据)的 post 请求 - 纯 javascript

javascript - Jquery 自动完成选择功能

javascript - 使用 HTML 输入提交表单

javascript - 在输入 Angular 2 动态表单上添加事件

javascript - JS |替换使用函数 | (a,b,c) 的含义