2016-12-05 5 views
0

Я получаю этот результат от запроса GQQuery GET, но он не рассматривается как объект.jQuery получить данные недоступны в качестве объекта

[{ 
    "amount": "19323", 
    "image_tag_id": "1", 
    "language_iso": "en", 
    "image_tag": "bla", 
    "image_content_id": "1", 
    "image_id": "1", 
    "last_change": "2010-08-18 09:46:53", 
    "description": "bla presented by a hairy fly", 
    "title": "bla_presented_by_a_hairy_fly", 
    "alt_text": "bla presented by a hairy fly" 
}] 

Это результат, который я получаю. Мне нужна сумма, которая будет отображаться на странице. Но теперь, если бы я получил его как результат «imagecount» и спросил imagecount.amount или imagecount[0].amount, он не определен.

echo json_encode($results); //gives the results 

$.get('/file.php', imageSearchData, function(imagecount) { 
    $('.imageAmount').html(imagecount[0].amount); 
}); 

Звоните в файл.

+1

Возможно, вы получаете JSON как строку. Если это так, вам нужно запустить 'JSON.parse' в строке JSON. – Enijar

+1

Попробуйте JSON.parse (imagecount [0] .amount) –

+1

Используйте '$ .getJSON' для автоматической десериализации строки или убедитесь, что вы правильно задали тип ответа' application/json' в заголовках вашего PHP. Вы строите строку вручную в своем PHP-коде, то есть используя конкатенацию? Если это так, вы должны действительно изменить это, чтобы использовать 'json_encode()' –

ответ

1

Обычный $.get, получает строку json. Попробуйте использовать $.getJSON, где он уже анализирует объект json.

$.getJSON('/file.php', imageSearchData, function(imagecount) { 
    $('.imageAmount').html(imagecount[0].amount); 
}); 
1

Поскольку вы кодирующий данные на стороне сервера, вы должны разобрать его на стороне клиента перед использованием, так что вы могли бы сделать это с помощью JSON.parse() или $.parseJson():

$.get('/file.php', imageSearchData, function(imagecount) { 
     imagecount = JSON.parse(imagecount); 
     //OR 
     //imagecount = $.parseJson(imagecount); 

     $('.imageAmount').html(imagecount[0].amount); 
}); 

Надежда это помогает.

1

Используйте JSON.parse(), чтобы решить эту проблему.

$.get('/file.php', imageSearchData, function(imagecount) { 
    var imagecountParsed = JSON.parse(imagecount); 
    $('.imageAmount').html(imagecountParsed[0].amount); 
}); 
Смежные вопросы