如何返回PHP数组并用Java接收

如何返回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]

我的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] = $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\”、…]”。我没有任何标识符来获取这些值

如何提取这些动态值并将其分配给字符串[]?

使用:

json_编码($array);在PHP中

Java中要读取的JSONObject

请参见此示例:

更新

更改行:

$regs[$numero] = $registo['Name'];
致:

如果需要获取ID,还可以执行以下操作:

$regs[] = array('name' => $registo["name"], 'id' => $registo["id"]);
忘记:

mysql_fetch_数组返回一个实数组,而不是字符串。不需要拆分字符串

  • 确保您的PHPWeb服务返回xsd:array
  • 使用一些生成器生成一个新代理,如。只需使用代理。没有别的了

  • 尝试使用JSON,您可以构建easy对象并读取它。

    我编辑了函数listar,因为它返回的是多维数组。我确实返回了xsd:string。更正。使用代理?为什么?怎么做?我不知道你在建议什么。这是一种设计模式。一些代理生成器将生成Java类,这些类将为您清除污点并返回一个干净的数组。请点击以下链接:我感谢您的帮助,但我不知道如何将其应用到我的Java android客户端中。。。很大程度上是因为该教程是要创建一个web客户端。好吧,你没有提到你在使用Android,所以我认为最好的方法是使用一种更简单的方法,比如JSON。其中一部分由@armandomiani指定,在这种情况下你可以使用Android吗
    $regs[] = array('name' => $registo["name"], 'id' => $registo["id"]);