В настоящее время у меня есть большая ссылка для скачивания файлов JSON размером 1 ГБ. Что я могу сделать, это загрузить его с помощью приложения Android, а затем проанализировать содержимое json потоковым через gson.Как разбить JSON на стороне сервера, а затем присоединить и передать его на стороне клиента
Но я заметил проблему, когда пользователи пытались загрузить такой большой файл стоимостью 1 ГБ.
- Что делать, если интернет пользователя сломался посередине загрузки?
- Что делать, если устройство пользователя неожиданно закончилось?
Основываясь на вышеуказанных сценариях, загрузка начинается с начала.
Чтобы исправить это, я подумал о возможном решении, которое разбивает JSON на части. Таким образом, приложение может проверить, загружена ли часть, и просто это означает, что приложение возобновляет загрузку из последней загруженной части, тем самым сохраняя данные и время.
Мой вопрос в том, как я могу разделить большой файл json? это просто очень большой json-файл ничего особенного. Я использую PHP для создания файла JSON из MySQL с кодами:
$fp = fopen($target_dir.'/json.json', 'w');
fwrite($fp,json_encode(array('reading'=>$r,'book'=>$b,'article'=>$a,'month'=>$m, 'status'=>$status)));
fclose($fp);
Затем продуцирующие связь через:
$file = $target_dir.'/json.json';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 540');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
Кроме того, если я в состоянии разбить файл JSON и создать скачать ссылки для приложения для использования, как я могу присоединиться к ним через приложение Android? Если соединение не нужно, можете ли я разобрать их из кусков?
Я не знаю, если это лучший подход для такого рода проблем, но я заметил, что 3D-мобильные игры, такие как настоящие гонки и GTA san andreas, загружают большие файлы или, возможно, кучу файлов среднего размера, которые требуют времени, чтобы закончить ,
Спасибо! Тогда плохо просто присоединитесь к ним на стороне клиента? например, добавить или что-то –
Да, это должно сработать. –