2013-07-02 4 views
0

У меня есть целый набор PHP-скриптов, которые взаимодействуют как с Android, так и с iOS-версией мобильного приложения. Все они работают одинаково: после того, как мобильное приложение инициирует GET или POST, скрипт PHP обычно возвращает строку с разделителями тире.Альтернатива возврату строки с разделителями?

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

user1-comment1-user2-comment2 

есть лучший способ, чем это? Потому что, если я когда-либо захочу вернуть новую переменную, например.

user1-comment1-newValue1-user2-comment2-newValue2 

, то это нарушит все текущие версии мобильного приложения.

+2

использовать стандартный формат, как 'json' ... – Baba

+1

вы можете иметь возвращаемое значение будет json закодированная строка словаря (т. е. php-массив с ключами и значениями)? У android и ios есть поддержка json-декодирования и кодирования. В качестве альтернативы, если вы хотите сохранить несколько байтов пространства, вы можете посмотреть на messagepack. но меньше: http://msgpack.org/ –

ответ

1

Почему бы не сериализовать результат и проанализировать его в java? Вы также можете использовать json_encode в PHP и декодировать его в своем приложении Android ... см. How to parse JSON in Android

1

Вам необходимо использовать сериализатор. Если у вас есть имя пользователя, которое содержит -, у вас возникнут проблемы. Сериализаторы позаботятся об этом для вас. Текущим фаворитом является JSON, который был XML.

JSON имеет отличную поддержку на большинстве веб-языков.

1

Вы можете сериализовать свой массив данных в строку json или строку пакета сообщений. Допустим, что ваш PHP массив был:

$a = array(
    "user1" => "comment1", 
    "user2" => "comment2", 
    "user3" => "comment3" 
); 

Что бы перевести это в JSON:

{ 
    "user1": "comment1", 
    "user2": "comment2", 
    "user3": "comment3" 
} 

Эта строка JSON может быть легко преобразован в NSDictionaries КСН (с использованием NSJSONSerialization) и JSONObjects на андроид (tutorial here).

Упакованная сообщение строка будет похожа по строкам на строку json выше, но менее читаема человеком из-за ее более компактной природы. Тем не менее, как Java, так и Objective-C имеют библиотеки, которые помогают переводить упакованные данные в исходные объекты.

1

Используя JSON, вы можете использовать пары имя/значение, поэтому порядок или включение параметров не будут иметь значения. JSON также обеспечивает иерархию и ограниченную типизацию, такую ​​как число против строки.

JSON также позволяет легко избежать символов, так что вы можете иметь любое значение, которое вы хотите (даже с обратной косой черты и кавычки.

Смежные вопросы