如何返回PHP数组并用Java接收
我的Web服务上有以下内容:如何返回PHP数组并用Java接收,java,php,Java,Php,我的Web服务上有以下内容: function listar($username) { $result = mysql_query("SELECT Name FROM APKs WHERE Tipo=0"); //$registo = mysql_fetch_array($result); $numero = 0; while($registo = mysql_fetch_array($result)) { $regs[$numero]
function listar($username)
{
$result = mysql_query("SELECT Name FROM APKs WHERE Tipo=0");
//$registo = mysql_fetch_array($result);
$numero = 0;
while($registo = mysql_fetch_array($result))
{
$regs[$numero] = $registo['Name'];
$numero++;
}
return $regs;
//return mysql_fetch_array($result);
}
在Java中,在SOAP调用之后(现在不相关),我是这样理解的:
Object response = envelope.getResponse();
String x = response.toString();
我需要访问这些字段中的哪一个(从数据库中选择),所以我想,为什么不将数组拆分为字符串呢
我尝试了两种方法:
String[] arr=x.split(" ");
System.out.println("Array :"+arr.length);
for(int i=0;i<arr.length;i++)
{
..
}
StringTokenizer stArr=new StringTokenizer(x," ");
while(stArr.hasMoreTokens())
{
...
}
但是没有一个有效,这让我相信我首先返回的阵列很糟糕
有什么帮助吗
更新:
- 所以我再次使用xsd:string
- 现在我的Web服务返回json_encode($regs)
- 为了从响应中转换对象,我使用了一个特定的GoogleAPI 对象响应=envelope.getResponse(); Gson Gson=新的Gson(); 字符串jstring=gson.toJson(响应)
- 但是我很难解析“jstring”,因为它的格式是:“[\'SOMETHING\”、\'SOMETHING\”、\'SOMETHING\“、\'SOMETHING\”、\'SOMETHING\”、…]”。我没有任何标识符来获取这些值
$regs[$numero] = $registo['Name'];
致:
如果需要获取ID,还可以执行以下操作:
$regs[] = array('name' => $registo["name"], 'id' => $registo["id"]);
忘记:
mysql_fetch_数组返回一个实数组,而不是字符串。不需要拆分字符串
尝试使用JSON,您可以构建easy对象并读取它。我编辑了函数listar,因为它返回的是多维数组。我确实返回了xsd:string。更正。使用代理?为什么?怎么做?我不知道你在建议什么。这是一种设计模式。一些代理生成器将生成Java类,这些类将为您清除污点并返回一个干净的数组。请点击以下链接:我感谢您的帮助,但我不知道如何将其应用到我的Java android客户端中。。。很大程度上是因为该教程是要创建一个web客户端。好吧,你没有提到你在使用Android,所以我认为最好的方法是使用一种更简单的方法,比如JSON。其中一部分由@armandomiani指定,在这种情况下你可以使用Android吗
$regs[] = array('name' => $registo["name"], 'id' => $registo["id"]);