2013-07-02 21 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,就像json但更小:http://msgpack.org/ –

回答

1

爲什麼不序列化結果並在java中解析它?您也可以在PHP中使用json_encode並在Android應用程序中對其進行解碼...請參閱How to parse JSON in Android

1

您需要使用序列化程序。如果您的用戶名包含-,則會遇到問題。串行器爲你處理這件事。目前的最愛是JSON,曾經是XML

JSON在大多數Web語言中都有出色的支持。

1

您可以將數據數組序列化爲json字符串或消息包字符串。比方說,你的PHP數組是:

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

這將轉化爲這JSON:

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

這JSON字符串可以很容易地轉換爲NSDictionaries在iOS(使用NSJSONSerialization)和一個JSONObjects在Android(tutorial here )。

消息包裝的字符串在結構上與上面的json字符串類似,但由於其更緊湊的特性,它的人類可讀性更低。但是,Java和Objective-C都有庫來幫助將消息打包數據轉換爲本機對象。

1

使用JSON,可以使用名稱/值對,因此參數的順序或包含將無關緊要。 JSON還提供層次結構和有限的輸入,例如數字與字符串。

JSON還可以讓你輕鬆轉義字符,所以你可以有任何價值,你想要的(即使反斜線和引號。