JSON или SOAP (XML)?

язык программирования C является хорошей начальной точкой.

, Кроме того, C самостоятельно хорошая начальная точка для изучения основ программирования: можно найти программное обеспечение C и разработчиков C почти везде, и много других языков пускают корни в C, такие как C++, C#, Objective C...

48
задан John Saunders 17 May 2012 в 18:00
поделиться

6 ответов

JSON имеет несколько преимуществ перед XML. Он намного меньше и менее раздут, поэтому вы будете передавать гораздо меньше данных по сети, что в случае мобильного устройства будет иметь большое значение.

Его также проще использовать в коде javascript, поскольку вы можете просто передать пакет данных непосредственно в массив javascript без какого-либо анализа, извлечения и преобразования, поэтому он также требует гораздо меньше ресурсов процессора.

Вместо этого кодировать с ним библиотеки XML вам понадобится библиотека JSON. Даты обрабатываются так же, как и в XML - кодируйте их в соответствии со стандартом, а затем позвольте библиотеке их распознать. (например, вот библиотека с образцом с датами в нем)

Вот пример .

41
ответ дан 26 November 2019 в 18:42
поделиться

А, большой вопрос: JSON или XML ?

В общем, я предпочитаю XML только тогда, когда мне нужно передать много текста, поскольку XML отлично справляется с переносом и разметкой текста.

При передаче небольших объектов данных, где единственные строки маленькие (идентификаторы, даты и т. д.), я бы предпочел использовать JSON, так как он меньше, легче анализировать и более читабельный.

Также обратите внимание, что даже если вы выберете XML, это никоим образом не означает, что вам нужно использовать SOAP. SOAP - это очень тяжелый протокол, предназначенный для взаимодействия между партнерами. Поскольку здесь вы управляете и клиентом, и сервером, это не обязательно имеет смысл.

33
ответ дан 26 November 2019 в 18:42
поделиться

Подумайте, как вы будете использовать результаты на iPhone. Какой механизм вы бы использовали для чтения ответа веб-службы? NSXMLParser?

То, как вы потребляете данные, будет иметь наибольшее влияние на то, как вы их обслуживаете.

Являются ли JSON и SOAP вашими единственными вариантами? А как насчет служб RESTful?

Взгляните на некоторых крупных игроков в Интернете, у которых есть общедоступные API-интерфейсы, доступные для клиентов iPhone:

Twitter API FriendFeed API

Также просмотрите следующие статьи по теме:

9
ответ дан 26 November 2019 в 18:42
поделиться

JSON имеет следующие преимущества:

  1. он может кодировать логические и числовые значения ... в XML все является строкой
  2. он имеет гораздо более четкую семантику ... в json у вас есть {"key": "someValue"} , в XML вы можете иметь someValue или ... любой узел XML должен иметь имя ... это не всегда имеет смысл ... и дочерние элементы могут представлять либо свойства объекта, либо дочерние элементы, которые при повторении несколько раз фактически представляют собой array ... чтобы действительно понять структуру объекта XML-сообщения, вам нужна соответствующая ему схема ... в JSON вам нужен только JSON ...
  3. меньшего размера и, следовательно, использует меньше пропускной способности и памяти во время синтаксического анализа / генерации. ..

кроме этого,Я НЕ вижу разницы между XML и JSON ... я имею в виду, это настолько взаимозаменяемо ... вы можете использовать JSON для захвата семантики SOAP, если хотите ... просто SOAP настолько раздут ... если вы действительно хотите использовать SOAP, используйте для этого библиотеку и генераторы ... создавать все это вручную неинтересно и неинтересно ...

с использованием XML RPC или JSON RPC должен работать быстрее ... он более легкий, и вы можете использовать JSON или XML по своему желанию ... но при создании клиентских <-> серверных приложений очень важной задачей в моих глазах является абстрагирование транспортного уровня с обеих сторон ... вся ваша бизнес-логика и т. д. никоим образом не должна зависеть от чего-то большего, чем крошечный интерфейс, когда дело доходит до связи, а затем вы можете подключать протоколы к своему приложению по мере необходимости ...

9
ответ дан 26 November 2019 в 18:42
поделиться

Есть больше вариантов, чем просто SOAP против JSON. Вы можете использовать протокол на основе REST ( Передача репрезентативного состояния ) с использованием XML. Я думаю, что это проще использовать, чем SOAP, и вы получаете гораздо более удобный XSD (который вы разрабатываете). Практически любому клиенту довольно легко получить доступ к таким сервисам.

С другой стороны, синтаксические анализаторы JSON доступны практически для любого языка и позволяют легко вызывать их из JavaScript, если вы будете использовать их через AJAX.

Однако SOAP может быть довольно мощным с множеством стандартизированных расширений, которые поддержка корпоративных функций.

4
ответ дан 26 November 2019 в 18:42
поделиться

Вы также можете используйте Hessian с HessianKit на стороне iPhone и HessianC # на стороне сервера.

Большие бонусы: 1. Гессен в протоколе двоичной сериализации, поэтому полезные данные меньшего размера, хорошо для 3G и GSM. 2. Вам не нужно беспокоиться о формате с обеих сторон, транспорт автоматизирован с помощью прокси.

Итак, на стороне сервера вы просто определяете интерфейс C #, например:

public interface IFruitService {
  int FruitCount();
  string GetFruit(int index);
}

Затем вы просто подклассифицируете CHessianHandler и реализуете IFruitService , и ваша веб-служба готова.

На iPhone просто напишите соответствующий протокол Objective-C:

@protocol IFruitService
-(int)FruitCount;
-(NSString*)GetFruit:(int)index;
@end

Затем к нему можно будет получить доступ через прокси с помощью одной строки кода:

id<IFruitService> fruitService = [CWHessianConnection proxyWithURL:serviceURL 
                                                          protocol:@protocol(IFruitService)];

Ссылки:

HessianKit: hessiankit

4
ответ дан 26 November 2019 в 18:42
поделиться