我想编写一个 Android 应用程序,它与用 php 编写的中央服务器通信,与它通信并获取/发送数据,例如用户身份验证、显示用户首选项等。我的问题是最好的方法是什么。在服务器端使用 web 服务,它返回一个 xml 并在 android 上解析 xml 或使用 json ,或者使用 html 后响应并解析它。对此的任何帮助将不胜感激。
5 回答
Json 是最好的选择
因为它是轻量级的,可以很容易地转换为 java 对象。总之JSON是最好的
正如其他答案所说,JSON。它是轻量级的,易于使用,android 有支持 JSON 的标准库。
例子:
ContentValues values = new ContentValues();
JSONArray projects = new JSONArray(_webService.getStringResponse());
int counter = 0;
int projectSize = projects.length();
while(projectCount < projectSize) {
JSONObject projectData = projects.getJSONObject(projectCount);
values.put(DbProperties.PROJECT_ID, projectData.getString("pid"));
values.put(DbProperties.CUSTOMER_ID, projectData.getString("cid"));
values.put(DbProperties.SETTLEMENT, projectData.getString("settl"));
//Do some database saving for example
counter++;
}
这里发生的事情(把它从应用程序中取出来让你明白)如下:
我发布了一个请求,以 JSON 格式返回一些结果。我创建了一个 JSONArray 对象,它接受一个 json 字符串作为构造函数参数,在我的例子中,json 字符串由一个包含 json 对象的数组组成
我遍历 JSONArray 中的每个项目,创建一个 JSONObject,然后从 json 对象中提取数据并将其保存到数据库中。
这个简单示例的目标是展示一些东西;
- 在 android 中使用 JSON 非常容易
- 只需缩短键名即可轻松压缩字符串(json 基本上是键值对)。
后者的好处是可以减少所说字符串的大小,而作为一个缺点,数据的可读性较差。我这样做是出于压缩原因,并且我的代码得到了很好的注释。来反映这种压缩。
请使用json。XML 太大了。html 不是为数据交换而设计的。
I'd recommend JASON. Its a defacto standard these days. And not so heavy like XML.
I've been using many C# JASON webservices fr my ANdroid applications and they all work like charm. I'm sure it'll be same with PHP services too.
Posting HTML response will be ok for a form but for a complex data you'll have hard time.
So I'll vote for JASON
.
Also have a glance over this supplementary read.
它取决于客户端和服务器团队。在 androidJSON
中提供了不错的 API。JSON
解析传入的数据并准备格式的请求很容易。
虽然你也可以去xml
。很好的支持xml
。