пока не нашел ни одной вменяемой библиотеки по исправлению JSON ошибок
хотя сама проблема - следствие простой криворукости, и решать такое нужно на другом уровне
суть проблемы: при многочисленном грабе данных через прокси некоторые API возвращают побитый JSON. Правильнее сказать - API возвращают все нормально, а уже прокси прерывает соединение и строка возвращается не полностью.
Похоже, успешно с этим справляется сжатие (не забывать передавать соответствующий параметр в заголовках), в этом случае прокси или честно возвращает свою страничку (бла бла, коннект запрещен - в частности, прокси университетов такое любят) или все же передает спарсенный сжатый файл в теле ответа.
Исправиить JSON в этом случае не всегда представляется возможным, ибо - попробуй отследи глубину вложенности, когда внутри одной конструкции есть целые вложенные другие.
Единственное, что, возможно, полезно - это вот такой вариант
http://stackoverflow.com/questions/18514910/how-do-i-automatically-fix-an-invalid-json-string
в моем случае он помог ровно никак, но может когда-то и пригодится.
А пока классика - GZIP + повторный запрос через другой прокси
хотя сама проблема - следствие простой криворукости, и решать такое нужно на другом уровне
суть проблемы: при многочисленном грабе данных через прокси некоторые API возвращают побитый JSON. Правильнее сказать - API возвращают все нормально, а уже прокси прерывает соединение и строка возвращается не полностью.
Похоже, успешно с этим справляется сжатие (не забывать передавать соответствующий параметр в заголовках), в этом случае прокси или честно возвращает свою страничку (бла бла, коннект запрещен - в частности, прокси университетов такое любят) или все же передает спарсенный сжатый файл в теле ответа.
Исправиить JSON в этом случае не всегда представляется возможным, ибо - попробуй отследи глубину вложенности, когда внутри одной конструкции есть целые вложенные другие.
Единственное, что, возможно, полезно - это вот такой вариант
http://stackoverflow.com/questions/18514910/how-do-i-automatically-fix-an-invalid-json-string
в моем случае он помог ровно никак, но может когда-то и пригодится.
А пока классика - GZIP + повторный запрос через другой прокси
Комментарии
Отправить комментарий