Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ajax javascript中获取数据类型json的特定值密钥对?_Javascript_Ajax_Json - Fatal编程技术网

如何在ajax javascript中获取数据类型json的特定值密钥对?

如何在ajax javascript中获取数据类型json的特定值密钥对?,javascript,ajax,json,Javascript,Ajax,Json,我想从下面代码中的数据中获取status的值 $.ajax({ dataType: "json", url: "calendar/php/date.php", type: "POST", data: { select: "%Y-%c-%e", where: "%Y-%c", d: y + "-" + m, order: "timestam

我想从下面代码中的数据中获取status的值

$.ajax({
        dataType: "json",
        url: "calendar/php/date.php",
        type: "POST",
        data: {
            select: "%Y-%c-%e",
            where: "%Y-%c",
            d: y + "-" + m,
            order: "timestamp, id"
        },
        beforeSend: function() { $('#loading').show(); },
        success: function(data) {
            sessionStorage[y+"-"+m] = JSON.stringify(data);
            for (var key in data) {
                $("<span class=\"label label-success\">" + Object.keys(data[key]).length + "</span>").prependTo($("#" + key));
                console.log('key: ' + key + '\n' + 'value: ' + JSON.stringify(data));
            }
        },
        complete: function() { $('#loading').fadeOut(200); }
    });
以下是console.log结果的某些部分:

关键词:2014-11-11 值:{2014-11-11:[{0:3,1:2014-11-11:11:00,2:2014-11-28 10:12:00,3:test,4:test,5:0,6:7:8:9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:17:2014-11-11,id:3,时间戳:2014-11-11:11:11:11:00,toTimestamp:2014-11-11-28 10:12:00,标题:测试,地点:测试,状态:0,组织者:,组织联系人:,组织邮箱:0,笔记本电脑,投影仪,白板:0ng:0,备注:,选择器:2014-11-11}],2014-11-12:[测试,4:测试,5:1,6:09:0:0:0:0:11:0:14:0:15:0:16:17:2014-11-12,ID:15,时间戳:2014-11-1207:0700,toTime:2014-11-1203:0900,题目:测试,状态:1,组织者:,组织者电子邮件:投影仪:0,膝上型电脑:0,扬声器:0,指针:0,白板:0,MealAcActudi: 0,PAR {0:15,1:2014-11-1207:07:00,2 2014-11-1203:09:00,3国王:0,备注:选择器:2014-11-12}]}


我想获得status的值,即0,如上面的结果所示,以便将其包含在数据{…}中var key的for循环中,如果status为0,则将类“label success”更改为“label failure”。您能帮我吗?

您好,可能我错了,但是

console.log('key: ' + key + '\n' + 'value: ' + JSON.stringify(data));
当您说JSON.stringifydata时,以字符串格式返回整个数据对象; 您需要在为数据指定一个特定键以从中读取值时返回的值:

console.log('key: ' + key + '\n' + 'value: ' + data[key]);
编辑:我不确定data[key]是否会返回一个[object]…如果它尝试JSON.stringifydata[key]

我还建议通过以下数据进行评级:

for(var i = 0; i < data.length; i++){} 
这是有点嵌套的,因此请尝试了解您拥有的内容:

data = { 
  "2014-11-11": [],
  "2014-11-12": []... }
此对象有一个返回对象长度的length方法。此方法允许您在数据对象上写入数据,该数据对象将为您提供2014-11-11作为密钥,使用此密钥您可以访问如下值:Data[key]这将返回您的数组…要从数组中读取数据,您必须再次写入数据[key][i]…现在您可以像这样读取每个数组元素中的数据

data[key][i]["status"];
希望这能有所帮助……不要费心去写这些代码:D

试试这些代码

 success: function(data) {
            sessionStorage[y+"-"+m] = JSON.stringify(data);
            for (var key in data) {
                var status = data['status'];
                var klass = status === 0 ? 'label-failure' : 'label-success';
                $('<span class="label '+klass+'">' + Object.keys(data[key]).length + "</span>").prependTo($("#" + key));
                console.log('key: ' + key + '\n' + 'value: ' + JSON.stringify(data));
            }
        },
$.ajax({
    dataType: "json",
    url: "calendar/php/date.php",
    type: "POST",
    data: {
        select: "%Y-%c-%e",
        where: "%Y-%c",
        d: y + "-" + m,
        order: "timestamp, id"
    },
    beforeSend: function() { $('#loading').show(); },
    success: function(data) {
        sessionStorage[y+"-"+m] = JSON.stringify(data);
        for (var key in data) {
            for (var i in data[key]) {
                $("<span class=\"label " + ((data[key][i] === "0") ? "label-failure" : "label-success") + "\">" + Object.keys(data[key]).length + "</span>").prependTo($("#" + key));
            }
            console.log('key: ' + key + '\n' + 'value: ' + JSON.stringify(data));
        }
    },
    complete: function() { $('#loading').fadeOut(200); }
});

只需将其硬编码为data[status]。硬编码的位置。我尝试了JSON.stringifydata[status],但得到的值是:undefined。你可能是对的。我尝试了data[key],但得到的结果是value:[object object object],这就是为什么我将其更改为JSON.stringifydata以获得整个对象。现在我只需要status.JSON.stringifydata[key]的值返回与JSON.stringifydata不同但相似的结果。我只需要status的值。您遇到的问题是,您有一个对象{},在这个对象中有一个元素,它包含一个对象数组,但我不太确定,因为您截断了输出,您必须获取数据[key]例如do forvar i=0;i$.ajax({ dataType: "json", url: "calendar/php/date.php", type: "POST", data: { select: "%Y-%c-%e", where: "%Y-%c", d: y + "-" + m, order: "timestamp, id" }, beforeSend: function() { $('#loading').show(); }, success: function(data) { sessionStorage[y+"-"+m] = JSON.stringify(data); for (var key in data) { for (var i in data[key]) { $("<span class=\"label " + ((data[key][i] === "0") ? "label-failure" : "label-success") + "\">" + Object.keys(data[key]).length + "</span>").prependTo($("#" + key)); } console.log('key: ' + key + '\n' + 'value: ' + JSON.stringify(data)); } }, complete: function() { $('#loading').fadeOut(200); } });