Сериализация данных
-
21-09-2019 - |
Вопрос
У меня есть приложение на основе Objective-C / cocoa, над которым я работаю.Это приложение является клиентским<->сервер.В настоящее время протокол обмена данными основан на некотором довольно простом XML.Хотя XML подходит для этой задачи, он не идеален ни в одном аспекте.Сериализовать данные в XML непросто, это не особенно удобно, и трудно включить информацию, не связанную с данными (например,:"сделай это следующим") в.
Я ищу предложения по альтернативному варианту.
Я рассмотрел некоторые из перечисленных здесь, но еще ни по одному не определился.Предложения?
Решение
Я использую JSON для приложения для iphone - обычно я бы предпочел XML, но нам нужен был очень легкий формат, поэтому мы остановили свой выбор на JSON.
Если вы работаете с XML, вам следует взглянуть на XPath, если вы еще этого не сделали - это даст вам огромные возможности для извлечения значений из структуры данных XML.
Другие советы
Если вы общаетесь с сервером Objective-C, вы можете изучить кодирование и декодирование с помощью предпочтительных методов сериализации, доступных в Objective-C.
NSKeyedArchiver
и NSKeyedUnarchiver
В принципе, вы получите NSData
из NSKeyedArchiver
который вы отправите (байты / длина) в другую часть и там поместите его обратно в NSData
и использовать NSKeyedUnarchiver
чтобы снова распаковать его в объекты.
Какой у вас сервер?Если сервер основан на Java, я бы рекомендовал посмотреть на Мешковинакит автор: Фредрик Олссон.Кодирование / декодирование в обычные типы Objective-C и добавление NSArrays и NSDictionaries сделают работу более плавной.
Что плохого в (Переносимые) Распределенные объекты?