Php 处理json,其中json数组的数量是动态的
我有一个从php到ajax的json响应。这取决于在文本框中输入的值,json数组的数量会有所不同。示例:有时它可能返回Php 处理json,其中json数组的数量是动态的,php,jquery,json,ajax,Php,Jquery,Json,Ajax,我有一个从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 s
{“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 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);
你在那里走对了。像这样的东西应该适合你
var i = 1;
while(response['count' + i]) {
var count = response['count' + i++];
}
可以像访问数组索引一样访问属性。所以响应['count'+i]
有效。成功:函数(响应){
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]);
}
}
var count=response.count1;
var object=JSON.parse(响应);
警报(对象长度);
对于(i=0;i
要检索所有值,请使用jQuery
$。每个
函数
var数据_tmp='{“count1”:10,“ccc1”:32,“count2”:40,“ccc2”:123,“count3”:32,“ccc3”:21}';
var data=$.parseJSON(data_tmp);
$.each(数据、函数(k、val){
if(k.toLowerCase().indexOf(“count”)>=0){
$('.wr')。追加(''+val+'')
}
});代码>
这如何解决OP的任何问题。它只是在循环之前通过json object.ist将json数据转换为javascript数组进行循环,但我只需要提取计数,您的代码将包括ccc以及counts@KimJongUn,更新了我的示例。现在,它将只包括包含count
的键的值,它对我有效。将其粘贴到浏览器的控制台中。我认为在我的例子中,响应是一个对象,所以它可能不起作用。你能再看一下我的代码吗?即使它是一个对象,它也能工作。我链接的粘贴库也具有作为对象的响应。如果你能分享整个代码,我可以看看你可能会失败的地方。还要确保加载了更新的js文件,清除缓存,等等。