返回分隔字符串的替代方法?

时间:2013-07-02 16:42:32

标签: php android ios

我有一整套PHP脚本,可以与Android和iOS版本的移动应用程序进行交互。它们的工作方式相同:在移动应用程序启动GET或POST后,PHP脚本通常会返回以虚线划分的字符串。

e.g。 如果我想获得特定页面上的注释列表,PHP脚本将返回类似

的内容
user1-comment1-user2-comment2

有比这更好的方法吗?因为如果我想要返回一个新变量,例如

user1-comment1-newValue1-user2-comment2-newValue2

然后这会破坏移动应用的所有当前版本。

4 个答案:

答案 0 :(得分:1)

为什么不序列化结果并在java中解析它?您还可以在PHP中使用json_encode并在Android应用中对其进行解码...请参阅How to parse JSON in Android

答案 1 :(得分:1)

您需要使用序列化程序。如果您的用户名包含-,则会遇到问题。 Serializers为您解决这个问题。目前最喜欢的是JSON,曾经是XML

JSON在大多数网络语言中都有出色的支持。

答案 2 :(得分:1)

您可以将数据数组序列化为json字符串或消息包字符串。假设你的php数组是:

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

这将在json中转化为此:

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

这个json字符串可以很容易地转换为ios上的NSDictionaries(使用NSJSONSerialization)和android上的JSONObjects(tutorial here)。

消息打包字符串在结构上与上面的json字符串相似,但由于其更紧凑的特性,因此人类可读性较差。但是,Java和Objective-C都有库来帮助将消息打包数据转换为本机对象。

答案 3 :(得分:1)

使用JSON,您可以使用名称/值对,因此参数的顺序或包含无关紧要。 JSON还提供层次结构和有限的类型,例如数字与字符串。

JSON还允许您轻松转义字符,因此您可以拥有所需的任何值(即使使用反斜杠和引号。