Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Распарсить JSON

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
kull
Отправлено: 17 Февраля, 2021 - 18:15:17
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Февр. 2021  


Помог: 0 раз(а)




Ребят, всем доброго времени суток!
У меня к одной задачи сразу два вопроса. Я получаю по API очень большой json в нем на данный момент 80.000 строк и весит файл порядка 15 мб.
Тут сразу у меня появляется вопрос как в данном случае быть, сохранять джейсон в файл и таскать данные из него либо все же записывать его в базу? Файл со временем будет только увеличиваться.

Для себя принял решение что буду искать данные в джейсоне и выводить инфу на страницу.

Джейсон выглядит следующим образом
Спойлер (Отобразить)


Здесь надо найти текущего пользователя user взять у него parent и найти все записи связанные с ним.
Например джейсон из примера должен отобразить данные:

1. начинаем с user=50 и узнаем у него parent
2. найти где id=7 и у этого id взять тоже parent
3. теперь зная parent у 7 записи ищем следующую запись.
и так надо пройти пока не упремся в parent: #

Начал все это делать и стал получатся такой код:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $file = file_get_contents('/data/'.$row['unixdata'].'.json');
  3. $res = json_decode($file, true);
  4.  
  5. $id = 7;
  6.  
  7. foreach ($res['data'] as $obj1)
  8. {
  9.   if($obj1['id'] == $id)
  10.   {
  11.                 $parent = $obj1['parent'];
  12.                 break;
  13.   }
  14. }
  15.  


код работает только для первого поиска. Но вот как сделать эту цепочку?
И так же мне очень интересно как вы стали бы обрабатывать большой json сохраняли бы в базу или в файл?
 
 Top
don.bidon
Отправлено: 24 Февраля, 2021 - 09:47:09
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Март 2019  


Помог: 2 раз(а)




kull пишет:
Но вот как сделать эту цепочку?

Складывайте parent-ов в массив, прочитайте про циклы while/do-while.
kull пишет:
Нбольшой json сохраняли бы в базу или в файл?

В БД.
 
 Top
Invis1ble
Отправлено: 09 Июля, 2021 - 20:59:46
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2016  


Помог: 0 раз(а)




Цитата:
И так же мне очень интересно как вы стали бы обрабатывать большой json сохраняли бы в базу или в файл?

Если по этим данным нужно регулярно производить поиск, то конечно же нужно сохранять в БД с индексами.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB