Миграция с SBJson 2.2 на SBJson 5

Здравствуйте! Мы используем SBJson lib с версией pod 'SBJson', '~>2.2.3' и хотим перейти на последнюю версию pod 'SBJson5', '~> 5.0.0'.

Какие будут усилия по миграции. Я имею в виду, будет ли он поддерживать старые методы или мне нужно найти устаревшие или измененные методы или любые другие конкретные изменения.

Кто-нибудь использовал эту библиотеку или выполнил миграцию с SBJson? Пожалуйста, предложите какое-нибудь решение

1 ответ

Я не знаю, насколько сложным является ваше использование, но вам определенно придется сделать некоторые ручные правки. Я выпустил версию 3, с большим смещением акцента на потоковую передачу JSON еще в 2011 году, и я откровенно удивлен, что версия 2.xx даже компилируется сегодня!

Я попытался задокументировать изменения в файле репозитория NEWS. При названии выпусков я пытался следовать SemVer, что означает, что каждые 2.xx -> 3.xx и 3.xx -> 4.xx и 4.xx -> 5.xx были названы таким образом, потому что все они нарушали обратную совместимость в каким-то образом.

В версии 3 API претерпел большие изменения, чтобы сосредоточиться на потоковой передаче. Большая часть API была изменена для поддержки этого. Версия 4 также удалила старые методы, которые были устаревшими в сериях 3.1.x, 3.2.x и 3.3.x. Для 4 -> 5 критическое изменение было очень маленьким: API остался прежним, и только поведение немного отличается. ("Голые скаляры", например, строки и числа, не обернутые в массив или объект, теперь принимаются в соответствии с обновленным JSON RFC.)

Рассматривали ли вы на самом деле нужно использовать SBJson? Вы можете быть лучше, просто используя NSJSONSerialisation. В конце концов, он был в iOS SDK начиная с iOS 5, а в Mac SDK чуть позже. Основное преимущество использования SBJson заключается в том, что вы хотите иметь возможность начать анализ JSON до его полной загрузки. (Таким образом, улучшается воспринимаемая задержка.)

Другие проблемы, с которыми вы можете столкнуться: я исправил много ошибок с выпусков 2.xx, что означает, что парсер теперь намного строже, чем тогда. (Из-за ошибок он допускал все виды испорченного JSON и испорченного UTF-8.) Поэтому, если вы полагаетесь на какое-либо из этих действий, вам не повезет. Надеюсь, что это не так:-)

Другие вопросы по тегам