我有一个从php到ajax的json响应。事情是取决于在文本框中输入的值,json数组的数量会有所不同。示例:有时它可能会返回{"count1":10, "ccc1":30}
,有时像这样{"count1":10, "ccc1":32, "count2":40, "ccc2":123,"count3":32,"ccc3":21}
。我以这种方式提取 jquery 中的值:
success: function(response){
var count = response.count1;
//do something
}
但是现在由于计数的数量不同,我使用了循环。问题是我可以弄清楚我收到了多少,但我如何处理它们?var count = response.count 需要是特定的,对吗?我不能像这样随意地插入任何字符串:
var count = 0;
while(something){
count = count + 1;
var str = "count"+count;
var whatever = response.str;
}
那么,在这种情况下,有人可以帮助我提供合适的解决方案吗?
你走在正确的轨道上。这样的东西应该适合你。
var i = 1;
while(response['count' + i]) {
var count = response['count' + i++];
}
您可以像访问数组索引一样访问属性。 所以response['count'+i]
工作。
遍历所有属性并将它们添加到变量中,如下所示。
var response = { "count1": 10, "ccc1": 32, "count2": 40, "ccc2": 123, "count3": 32, "ccc3": 21 };
var count = 0;
for (var prop in response) {
if (prop.startsWith('count'))
count += response[prop];
}
console.log(count);
要检索所有值jQuery
$.each
var data_tmp = '{"count1":10, "ccc1":32, "count2":40, "ccc2":123,"count3":32,"ccc3":21}';
var data = $.parseJSON(data_tmp);
$.each(data, function(k,val){
if(k.toLowerCase().indexOf("count") >= 0){
$('.wr').append('<div>' + val + '</div>')
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="wr"></div>
success: function(response){
var count = response.count1;
var object = JSON.parse(response);
alert(object.length);
for (i = 0; i < object.length; i++) {
console.log(object[i]);
}
}