Ответ 1
Сделайте условие if, затем сначала преобразуйте его в строку, затем подсчитайте длину по мере необходимости.
success: function(response) {
if(response){
alert( (response + '').length );
}
}
Мне нужно подсчитать длину ответа Ajax, выполненного в jQuery. Ответ находится в формате JSON и содержит только одну строку. Я получаю значение, но не знаю, как подсчитать длину этой строки.
Здесь мой код:
var tempId;
$.ajax({
url: "<?=base_url();?>index.php/sell/decoder",
type: "POST",
data: {'str' : sometext},
dataType: 'json',
async: false,
success: function(response) {
tempId = response; // This gives me a return value as a string. For example = 153
alert(tempId.length); // But this returns "undefined". What should I do to get the length?
}
});
Здесь структура заголовка ответа:
Connection Keep-Alive
Content-Length 2
Content-Type text/html
Date Fri, 06 Jul 2012 08:12:12 GMT
Keep-Alive timeout=5, max=86
Server Apache
X-Powered-By PHP/5.3.10
Сделайте условие if, затем сначала преобразуйте его в строку, затем подсчитайте длину по мере необходимости.
success: function(response) {
if(response){
alert( (response + '').length );
}
}
Или преобразовать ваше значение (я думаю, что это целое число) в строку:
tempId.toString().length
tempId.String.length
работал у меня!
Если вы знаете, что ответ не является объектом, то
success: function(response) {
if(response){
alert( (response + '').length );
}
}
будет хорошо работать.
но если ответ будет в виде объекта типа
[{name:'some-name',details:[....something]}]
Я бы предложил использовать приведенный ниже код
success: function(response) {
length=0;
if(response){
length=JSON.stringify(response).length;
}
console.log(length)
}
Я думаю, что этот код будет работать для вас как шарм.