json结果显示第一个值
json result display first value
我发现了几个类似于这个主题的帖子,但我尝试过的都没有真正奏效。我的问题很简单,应该很容易回答。我的返回json对象将有一个键和一个值。对于下面的代码,警报显示"[{"DISCOUNT":1}]",我所要做的就是解析出"1"并显示它。最终,我想将该值插入一个变量中并用于乘法,但我甚至无法单独显示该死的数字。我的代码如下:
function codeMatchTest() {
if ($('#dbReturnString').val() == '') {
alert("Please enter a discount code.");
} else {
$.ajax({
type: "POST",
url: "PROMO.svc/MatchCode",
contentType: "application/json",
dataType: "json",
data: JSON.stringify({ codeInput: $('#dbReturnString').val().toLowerCase() }),
success: function (json) {
alert(json.d);
/*alert (json.d.discount); // getting "undefined"
$.each(json.d, function (key, value) {
var discount = value;
});
alert("Success: " + discount); //getting "undefined" */
},
error: function () {
alert("There was an error with your request.");
}
});
}
}
关于如何在json对象中实际使用数据,我没有找到任何好的参考资料。我的json对象将只由一个键和值组成,我只需要使用该值。
此外,我已经尝试了多次使用$.每个迭代,但都不起作用。基于jquery文档,这应该很容易,但我运气不好。
如果您的警报显示"[{"DISCOUNT":1}]"
,则表示您在数组中有一个对象。
尝试alert(json.d[0].DISCOUNT);
JSON解析的对象是区分大小写的,而且JSON.d似乎包含一个字符串(wich似乎在JSON中)而不是一个对象。尝试:
var折扣=JSON.parse(JSON.d);折扣=折扣[0]。折扣;
success: function(json) {
alert(json.d[0]["DISCOUNT"]);
}
对代码的第一个评论是,您正在重新发明jQuery的功能。
data: JSON.stringify({ codeInput: $('#dbReturnString').val().toLowerCase() }),
应该只是
data: { codeInput: $('#dbReturnString').val().toLowerCase() },
现在要获取数据很简单,您需要返回一个包含对象的数组
让我们把它看作一个正则变量,而不是Ajaqx调用。
var json = [{"DISCOUNT":1}];
所以你有一个数组?你是如何把物体放进去的?您引用了索引。既然你说只会返回一个索引,那就用[0]来访问它。
success: function (json) {
alert(json[0].DISCOUNT);
要访问json
中的第一个项目,可以使用
alert(json.d[0].DISCOUNT);
因为json.d
是一个数组,它包含一个对象,即0
索引。因此,json.d[0]
将从数组中选择第一个项目/对象,并使用.DISCOUNT
可以访问对象的属性。也可以访问类似的属性
alert(json.d[0]["DISCOUNT"]);
尝试这种方式
您可以使用JSON.parse(JSON.d)/JSON.d
var data = json.d;
for(i=0;i<data.length;i++) {
alert(data[i].fieldname);
}
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- jQuery下拉列表未显示第一个选项
- 仅在第一个结果中显示/隐藏MySQL结果函数
- 单击按钮显示不同的文本,重复第一个文本
- 浮动图-如何在x轴上显示第一个月和最后一个月的minTickSize:[2,“month&”]
- Angular js将只显示ng repeat中的第一个元素
- 显示基于第一个下拉列表的第二个下拉列表不起作用
- jQuery当前选中的单选按钮值始终显示第一个按钮值
- 只显示ng重复的第一个元素
- jQuery显示/隐藏仅适用于第一个选择器
- 从Web视图上显示的页面部分获取第一个元素
- 如何对select2自动完成结果进行排序,只显示以第一个字母开头的项目
- 动态生成<选择>未显示已排序列表中的第一个项目
- Bootstrap Typeahead只显示第一个字母
- 谷歌地图没有显示地图上的所有目的地标记,只有第一个和最后一个
- 为什么是Backbone.Collection为第一个查看器显示了两次
- 幻灯片在加载图像时开始,但在下载所有图像之前不会显示第一个图像
- jQuery:如何在不使用每个循环的情况下显示数组的第一个元素
- KendoUI 工具栏拆分按钮会自动突出显示下拉列表中的第一个选项.如何使所有选项看起来相同
- AJAX 实时搜索仅当结果以相同的第一个字母开头时才显示结果