Подтвердить что ты не робот

Получите длину jQquery Ajax Response

Мне нужно подсчитать длину ответа 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
4b9b3361

Ответ 1

Сделайте условие if, затем сначала преобразуйте его в строку, затем подсчитайте длину по мере необходимости.

success: function(response) {
    if(response){       
      alert( (response + '').length );
    }
}

Ответ 2

Или преобразовать ваше значение (я думаю, что это целое число) в строку:

tempId.toString().length

Ответ 3

tempId.String.length работал у меня!

Ответ 4

Если вы знаете, что ответ не является объектом, то

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)
}

Я думаю, что этот код будет работать для вас как шарм.