API кинопоиска для Ucoz Страница 2

Общие вопросы по системе юкоз, вопросы по ucoz, вопросы без определенной темы

Re: API кинопоиска для Ucoz

Мыдаров Рустам » » Сообщение:

Admin писал(а) › 04.04.2016, 14:52:По принципу:

Да, я уже понял =)

Понемногу получается, вот так я ещё инфу достаю:

Код: Выделить всё Развернуть
document.getElementById("placeholder").innerHTML=data.creators[0][0].nameRU+" "+data.creators[0][0].nameEN+" ";

Только я не понял что такое вот это ? [0][0]


Re: API кинопоиска для Ucoz

Admin » » Сообщение:

Мыдаров Рустам писал(а) › 04.04.2016, 14:59:Только я не понял что такое вот это ? [0][0]

-это массив. Данные хранятся во вложенных массивах. [0][0] - означает первый массив в первом массиве объекта data.creators.

Все данные вывести можно типа так:

Код: Выделить всё Развернуть
<div id="out"></div>
<script type="text/javascript">
$.getJSON('http://api.kinopoisk.cf/getStaff?filmID=714888',{},function (data,b,c){
   $.each(data.creators,function(name,val) {
      document.getElementById('out').innerHTML+=name+'<br />';
      $.each(val,function(name,val) {
         $.each(val,function(name,val) {
            document.getElementById('out').innerHTML+='&nbsp;&nbsp;'+name+'==='+val+'<br />';
         });
         document.getElementById('out').innerHTML+='<br />';
      });
      document.getElementById('out').innerHTML+='<br />';
   });
});
</script>

Вкури спокойно и все поймешь.

Объекты обозначаются скобочками: {}, массивы: []

Код: Выделить всё Развернуть
data={'creators':[[{'name':'value','name2':'value2',...}]]}

К объектам обращаются по именам, к массивам - по числовому индексу.

Обратиться к объекту creators так: data.creators; получим это: data={'creators'}
Обратиться к первому массиву объекта creators - так: data.creators[0]; получим это: data={'creators':[]} и так далее..

Прямо по табличке:

plain Код: Выделить всё Развернуть
{"creators":
  [
    [
      {
        "id": "27741",
        "type": "KPPeople",
        "nameRU": "Джей Джей Абрамс",
        "nameEN": "J.J. Abrams",
        "posterURL": "actor_iphone/iphone60_27741.jpg",
        "professionText": "Режиссеры",
        "professionKey": "director"
      }
    ]
  ]
}

data.creators[0][0].nameRU;


Re: API кинопоиска для Ucoz

Мыдаров Рустам » » Сообщение:

Admin спасибо тебе дружище, вот что получилось с твоей помощью =) - ссылка удалена

И ещё один вопрос =)
Вот в такой ветке как обратиться к image ?

Код: Выделить всё Развернуть
{
  "gallery": {
    "poster": [
      {
        "image": "poster/2738354.jpg",
        "preview": "poster/sm_2738354.jpg",
        "socialURL": "2738354/"

Я пишу так, но видимо не правильно:

data.gallery.poster[0].image

Добавлено спустя 5 минут 30 секунд:
И вот это за что отвечает?

Код: Выделить всё Развернуть
function (data,b,c)
Последний раз редактировалось Мыдаров Рустам 05.04.2016, 17:08, всего редактировалось 1 раз.

Re: API кинопоиска для Ucoz

Admin » » Сообщение:

Мыдаров Рустам писал(а) › 05.04.2016, 13:45:Вот в такой ветке как обратиться к image ?

Именно так:

Мыдаров Рустам писал(а) › 05.04.2016, 13:45:data.gallery.poster[0].image
Мыдаров Рустам писал(а) › 05.04.2016, 13:45:Я пишу так, но видимо не правильно:

Как понял, что неправильно?

Мыдаров Рустам писал(а) › 05.04.2016, 13:45:И вот это за что отвечает?

data - сам ответ;
b,c - технические ответы сервера - код (типа 200 - Ok), и текст (Success)



Re: API кинопоиска для Ucoz

kinouser » » Сообщение:

Мыдаров Рустам спасибо за готовое решение,тоже себе поставил,а у вас не было идеи соединить актёров по сайту,как пример кликая по актёру и выводим список фильмов с данным актёром.И ещё вопрос,немного наглый канечно,а возможно ли применяя этот апи сделать отдельный блок с предстоящими премьерами?


Re: API кинопоиска для Ucoz

Мыдаров Рустам » » Сообщение:

kinouser писал(а) › 05.04.2016, 16:19:у вас не было идеи соединить актёров по сайту,как пример кликая по актёру и выводим список фильмов с данным актёром.

Нет, не особо хочется с этим заморачиваться, темболее это api не официальное и его в любой момент могут прикрыть или сделать платным.

kinouser писал(а) › 05.04.2016, 16:19:И ещё вопрос,немного наглый канечно,а возможно ли применяя этот апи сделать отдельный блок с предстоящими премьерами?

Посмотрите в документации, если там есть такое, значит можно :) вроде там было что то похожее, сейчас не могу посмотреть, пишу с мобилы.



Re: API кинопоиска для Ucoz

Admin » » Сообщение:

Мыдаров Рустам писал(а) › 06.04.2016, 08:15:привет, как можно сделать +data.creators[1][3].nameRU+ если графа nameRU пустая то выводить nameEN ?
Код: Выделить всё Развернуть
(data.creators[1][3].nameRU.length?data.creators[1][3].nameRU:data.creators[1][3].nameEN)

или полная запись:

Код: Выделить всё Развернуть
if(data.creators[1][3].nameRU.length){
   ///
}else{
   ///
}


Re: API кинопоиска для Ucoz

Мыдаров Рустам » » Сообщение:

Привет, подскажи пожалуйста, как мне правильно обратиться к previewFilms в этом массиве - http://api.kinopoisk.cf/getSoonFilms

Я делаю так:

Код: Выделить всё Развернуть
$.getJSON('http://api.kinopoisk.cf/getSoonFilms',{},function (data) {
var html = '';
data.previewFilms.forEach(function(element) {
html += ' '+element.nameRU+' ';
})
document.getElementById("myblok").innerHTML=html;
});

Ничего не выдаёт, но если добавить это [0], т.е. сделать так previewFilms[0] или так previewFilms[1], тогда выдаёт, но совсем другую информацию, не ту которая в этом массиве.


Re: API кинопоиска для Ucoz

Admin » » Сообщение:

Мыдаров Рустам писал(а) › 31.08.2016, 07:41:подскажи пожалуйста, как мне правильно обратиться к previewFilms в этом массиве

Массив такой:

Код: Выделить всё Развернуть
{"previewFilms":[[{"type":"KPFilm","id":"743088","nameRU":"\u0422\u0430\u0439\u043d\u0430\u044f

Следовательно, обратиться конкретно к previewFilms так:

Код: Выделить всё Развернуть
data.previewFilms

Объект previewFilms содержит 2 простых массива - previewFilms":[[{ и объект/ы в них.
Следовательно, получить значение поля, например, "type" так:

Код: Выделить всё Развернуть
data.previewFilms[0][0]['type']

Например вот это:

Код: Выделить всё Развернуть
html = '';
for(e in data.previewFilms[0]){
   html += ' '+data.previewFilms[0][e].nameRU+' ';
}
alert(html);

Выведет это:

Код: Выделить всё Развернуть
Тайная жизнь домашних животных  Парни со стволами  Любовь и дружба  Любой ценой  Повелители снов  Простая история  Арло: Говорящий поросёнок

---

Мыдаров Рустам писал(а) › 31.08.2016, 07:41:Ничего не выдаёт, но если добавить это [0], т.е. сделать так previewFilms[0] или так previewFilms[1], тогда выдаёт, но совсем другую информацию, не ту которая в этом массиве.

Да вы что?) И откуда скрипт берет не ту информацию?
А какая вам нужна?
---


Re: API кинопоиска для Ucoz

Мыдаров Рустам » » Сообщение:

Я не правильно наверное объяснил:

Я хочу достать все элементы которые есть, делаю я это так '+element.nameRU+', '+element.year+' и т.д.
Сейчас у меня в принципе всё работает как надо, но проблема в том что информация достаётся совсем не та которую выдаёт запрос - http://api.kinopoisk.cf/getSoonFilms

Вот пример - http://mytest.ucoz.org/news/test_skripta/2016-08-31-19

Выдаёт это:

Джейсон Борн
Девятая жизнь Луи Дракса
Очень плохие мамочки
Девять жизней
Хроники мстителя
Все о мужчинах
Жизнь на вулкане

Но этого вообще нету там, и всего лишь 7 фильмов, я думаю что в моём скрипте не правильно обращение идёт через data.previewFilms[0].forEach



Пред.След.



Похожие темыКомментарии ПросмотрыПоследнее сообщение
0366Базы данных на uCoz. Использование ...
Сообщение от: Admin
0770Стоп спамер. Проверка пользователей...
Сообщение от: Admin
312297Re: Доработка/создание скрипта Гене...
Сообщение от: Admin
02102Операторы шаблонов и системные коды...
Сообщение от: Admin
01725Операторы шаблонов и системные коды...
Сообщение от: Admin