如何在ajax javascript中获取数据类型json的特定值-密钥对
How do I get specific value key pair in ajax javascript for datatype json?
我想从下面代码中的数据中获得"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-111 11:11:00","2":"201411-28 10:12:00","3":"test","4":"test","5":"0",","17":"2014-11-11","id":"3","时间戳":"2014-20111-11 11:11:00","toTimestamp":"201411-28 10:12:00","title":"测试","location":"test","status":"0","organizer":","organizerContact":","organizerEmail":","投影仪":"0","笔记本电脑":"1","扬声器":"2","指针":"3","白板":"4","mediaCoverage":"5","parking":"6","remark":"8","selector":《2014-11-11》}],"2014-11-12":[{"0":"15","1":"2014-11-12 07:07:00,"17":"2014-11-12","id":"15","时间戳":"2014-20111-12 07:07:00","toTimestamp":"201411-12 03:09:00","title":"测试","location":"test","status":"1","organizer":","organizerContact":","organizerEmail":","投影仪":"0","笔记本电脑":"1","扬声器":"2","指针":"3","白板":"4","mediaCoverage":"5","parking":"6","remark":"8","selector":《2014-11-12》}]}
我想得到"status"的值,即0,如上面的结果所示,以便将其包括在for循环中(for(var key in data){…}),以便在状态为0的情况下将类"label success"更改为"label failure"。你能帮我吗?
你好,也许我错了,但
console.log('key: ' + key + ''n' + 'value: ' + JSON.stringify(data));
当您说JSON.stringfy(data)时,以字符串格式返回整个数据对象;当你给数据一个特定的密钥来读取值时,你想要返回的值:
console.log('key: ' + key + ''n' + 'value: ' + data[key]);
编辑:我不确定数据[key]是否会返回[object object]。。。如果它真的尝试JSON.stringfy(data[key])
我还建议使用重复数据
for(var i = 0; i < data.length; i++){}
这使得它可读性强,并且被认为是提取数据的最高效的方式。
第2版:
这是你的目标:
{"2014-11-11":[{"0":"3","1":"2014-11-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","timestamp":"2014-11-11 11:11:00","toTimestamp":"2014-11-28 10:12:00","title":"test","location":"test","status":"0","organizer":"","organizerContact":"","organizerEmail":"","projector":"0","laptop":"0","speaker":"0","pointer":"0","whiteboard":"0","mediaCoverage":"0","parking":"0","remark":"","selector":"2014-11-11"}],"2014-11-12":[{"0":"15","1":"2014-11-12 07:07:00","2":"2014-11-12 03:09:00","3":"test","4":"test","5":"1","6":"","7":"","8":"","9":"0","10":"0","11":"0","12":"0","13":"0","14":"0","15":"0","16":"","17":"2014-11-12","id":"15","timestamp":"2014-11-12 07:07:00","toTimestamp":"2014-11-12 03:09:00","title":"test","location":"test","status":"1","organizer":"","organizerContact":"","organizerEmail":"","projector":"0","laptop":"0","speaker":"0","pointer":"0","whiteboard":"0","mediaCoverage":"0","parking":"0","remark":"","selector":"2014-11-12"}]}
这有点嵌套,所以试着了解一下你所拥有的:
data = {
"2014-11-11": [],
"2014-11-12": []... }
这个对象有一个返回对象长度的length方法。这允许你在数据对象上提交数据。它会给你"2014-11-11"作为密钥,有了这个密钥,你可以访问你的值,如下所示:Data[key]这将返回你的数组。。。要从数组中读取数据,您必须再次提交data[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); }
});
- 如何在javascript中获取数组密钥对的json子值
- html keygen替代方案,在浏览器中生成密钥对
- 使用给定的URL和密钥将JSON对象提取到jQuery ajax中
- 访问 JSON 中的嵌套对象(密钥对/MYSQL 数组)
- 在Javascript中生成PGP密钥对,并使用加密的PGP私钥对文本进行签名
- OpenPGP.min.js 不会生成密钥对
- 在 PHP 可读的 JavaScript 中创建 PEM 密钥对
- 如何在ajax javascript中获取数据类型json的特定值-密钥对
- 从json(不在正确的密钥对中)创建javascript对象(带有密钥对)
- 使用d3或jquery的json对象中有多少不同的密钥对值
- 基于密钥的JSON到JSON复制
- java.lang.RuntimeException:无法生成DH密钥对
- 在嵌套json对象中查找和更新,而不更改不同子路径中的相同密钥对值
- 如何使用Web Crypto生成密钥对,并在Firefox AddOn中访问其密钥
- 使用javascript将数组存储为json中的密钥对
- 不能使用密钥对验证Node.js加密中的签名
- jquery对象密钥对未定义
- 在MapReduce MongoDB中按密钥对数据进行分组
- Angularjs:从密钥对中解析值
- 如何使用具有唯一密钥的JSON