Как стать автором
Обновить

Комментарии 8

Синтаксис страшненький на мой взгляд.

let obj = json.get("workplan.presets.1.id") as? Int

смотрелось бы не так вырвиглазно
Так тоже можно, более того, до этого у меня так и было сделано (правда в ObjC классе).
Но при этом, во-первых нужно создавать специальный объект для работы с Dictionary, во вторых не очень красива конструкция «presets.1» (можно представить ситуацию, когда неправильно сформированный JSON имеет строковый ключ «1» вместо извлечения по индексу).
Кроме того, в реальной жизни эта конструкция будет выглядеть немного страшнее: «workplan.presets.\(index).id». Ну и лучше-бы на мой взгляд по subscript извлекать, а не методом .get()
А если захочется все-таки вытащить Dictionary preset, а потом из него уже все мапить: json.get(«workplan.presets.1»)? Получается дальше уже не получится так красиво, либо еще раз его придется заворачивать во что-то, либо функцией Get возвращать сразу dict в обертке, но это уже слишком :)
Я пытался работать с optJSON и другие решения пробовал, но все же перешел на SwiftyJSON. Как и писал в статье. Там и синтаксис очень удобный, и библиотека хорошо тестами покрыта, и разработка постоянно продолжается.)

Вы, конечно, постарались. Если проект будет развиваться, то возьму его на заметку)
SwiftyJSON более прожорлив к процессору (и расходу батареи), у меня в то время когда SwiftyJSON жрал 100% проца и интерфейс тормозил, OptJSON использовал всего 30%
На небольших данных это не так заметно, но всё же стоит иметь ввиду

Эта упрощенная версия OptJSON очень порадовала
Можно еще сделать расширение протокола JSONValue чтобы возвращал разные там intValue, stringValue без as. Вообще в Swift 2 все намного проще и интрересней, чем было раньше. Тогда ограничений было намного боьльше. Возможно, поэтому автор и использовал некоторые костыльные решения. Я и в своем коде до сих пор их нахожу и исправляю на более нормальные варианты swift 2.
Именно этого не хватало в optJSON, а точнее именно это и мешало, так что результат отличный
Попробуйте SwiftyJSON — библиотека написана намного более качественно, и код парсинга сокращает в разы.
Про нее уже писали. Более ресурсозатратная либа.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации