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
Форумы портала PHP.SU :: Версия для печати :: Распарсить JSON
Форумы портала PHP.SU » » Вопросы новичков » Распарсить JSON

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

1. kull - 17 Февраля, 2021 - 18:15:17 - перейти к сообщению
Ребят, всем доброго времени суток!
У меня к одной задачи сразу два вопроса. Я получаю по 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 сохраняли бы в базу или в файл?
2. don.bidon - 24 Февраля, 2021 - 09:47:09 - перейти к сообщению
kull пишет:
Но вот как сделать эту цепочку?

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

В БД.
3. Invis1ble - 09 Июля, 2021 - 20:59:46 - перейти к сообщению
Цитата:
И так же мне очень интересно как вы стали бы обрабатывать большой json сохраняли бы в базу или в файл?

Если по этим данным нужно регулярно производить поиск, то конечно же нужно сохранять в БД с индексами.

 

Powered by ExBB FM 1.0 RC1