捕获并比较2个json结果

时间:2013-09-17 19:21:31

标签: jquery json jqgrid

我有一个使用ajax / json加载数据的jqgrid,然后我有一个每15秒运行一次的函数来检查数据是否已经改变,如果有我需要从jqgrid上传数据,问题即时通讯我的2个调用返回相同的结果,但是当我比较它们时,我得到它们是不同的,我能找到的唯一差异不是数据,是来自调用的参数,因为jqgrid添加了像_search,page,order这样的参数等,但它们对结果没有影响。

当网格进行调用时,我将数据存储在gloval var(我的网格代码的一部分)上:

jQuery("#scheduledGrid").jqGrid({
    url: '../Agenda/turneraJSON',
    datatype: "json",
    postData: {
        'fecha': function () { return $("#selectedDate").val(); },
        'idTipoConsulta': function () { return $("#idTipoTurnoSeleccionado").val(); },
        'idEspecialidad': function () { return $("#idEspecialidadSeleccionada").val(); },
        'idEstado': function () { return $("#idEstadoSeleccionado").val(); }
    },
    loadComplete: function (data) {
        tempData = data;},
然后我再打一次电话

  window.setInterval(function () {
            chkUpdates();
        }, 15000);

    function chkUpdates() {
        $.ajax({
            type: "GET",
            url: '../Agenda/turneraJSON',
            datatype: "json",
            data: {
                fecha: function () { return $("#selectedDate").val(); },
                idTipoConsulta: function () { return $("#idTipoTurnoSeleccionado").val(); },
                idEspecialidad: function () { return $("#idEspecialidadSeleccionada").val(); },
                idEstado: function () { return $("#idEstadoSeleccionado").val(); }
            }                
        }).done(function (msg) {
            tempData2 = msg;
            if (tempData2 == tempData) {
                alert("yes");
            }
            else {
                alert("no");
                //refreshGrid();
            }

        });

问题是if (tempData2 == tempData)始终为假

任何想法?

1 个答案:

答案 0 :(得分:0)

您正在尝试比较两个不同的对象。尝试将它们转换为字符串并进行比较:

if(JSON.stringify(tempData)==JSON.stringify(tempData2))