从服务器到Android手机获取数据的最佳方式

从服务器到Android手机获取数据的最佳方式,android,xml,json,Android,Xml,Json,我想写一个Android应用程序,它与用php编写的中央服务器通信,与它通信并获取/发送数据,例如用户身份验证、显示用户偏好等。 我的问题是什么是最好的方法。在服务器端使用Web服务,返回xml并在android上解析xml,或者使用json,或者使用html post响应返回并解析它。 在此方面的任何帮助都将不胜感激。Json是最佳选择 因为它很轻,并且可以很容易地转换为java对象。 简而言之,JSON是最好的请使用JSON。XML太大了。html不是为数据交换而设计的。它取决于客户端和服务

我想写一个Android应用程序,它与用php编写的中央服务器通信,与它通信并获取/发送数据,例如用户身份验证、显示用户偏好等。 我的问题是什么是最好的方法。在服务器端使用Web服务,返回xml并在android上解析xml,或者使用json,或者使用html post响应返回并解析它。
在此方面的任何帮助都将不胜感激。

Json是最佳选择

因为它很轻,并且可以很容易地转换为java对象。
简而言之,JSON是最好的

请使用JSON。XML太大了。html不是为数据交换而设计的。

它取决于客户端和服务器团队。在android中,可以使用nice
JSON
API。解析传入数据和准备
JSON
格式的请求很容易


尽管您也可以选择
xml
xml也提供了很好的支持。

我推荐JASON。这是当今的事实标准。而且不像XML那么重

我在ANdroid应用程序中使用了许多C#JASON Web服务,它们都工作得很好。我相信PHP服务也会如此

发布HTML响应对于表单来说是可以的,但是对于复杂的数据,您将很难做到这一点

所以我会投票给贾森


也可以浏览一下这个

正如其他答案所说,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++;
}
ContentValues=新ContentValues();
JSONArray projects=newjsonarray(_webService.getStringResponse());
int计数器=0;
int projectSize=projects.length();
while(projectCount
这里发生的情况(从应用程序中取出此内容以便您了解情况)如下所示:

我发布了一个请求,得到了一些JSON格式的结果。我创建了一个JSONArray对象,它将json字符串作为构造函数参数,在我的例子中,json字符串由一个包含json对象的数组组成

我循环遍历JSONArray中的每个项,创建一个JSONObject,然后从json对象提取数据并将其保存到数据库中

我用这个简单的例子的目的是展示一些东西

  • 在android中使用JSON非常容易
  • 通过简单地缩短键名(json基本上是键值对),可以轻松压缩字符串

后者的好处是将所说字符串的大小分块,而作为缺点,数据的可读性较差。我这样做是为了压缩,我的代码得到了很好的注释。以反映这种压缩。

json。。。更容易使用和更灵活谢谢你的回答,我还有一个问题,我应该在服务器端使用什么来生成JSON。虽然我不是一个web开发人员,但hear是php的链接。。。