Java Android JSON解析问题:似乎将其分为两个单独的对象,并且只识别一个

Java Android JSON解析问题:似乎将其分为两个单独的对象,并且只识别一个,java,php,android,sql,json,Java,Php,Android,Sql,Json,它的作用是: 这是一款android应用程序,它将模仿我的团队正在创建的一个网站apdata.info。 这是第二个页面,它将显示符合他们要求的搜索的机场 PHP 问题是,jArray.length是=到1,即使我收到的比这多得多。从我的输出中可以看到,字符串似乎分为两部分,第一部分是 [{“apname”:“俾斯麦市机场”、“apcity”:“俾斯麦”、“apstate”:“北达科他州”、“apcountry”:“美国”、“IATA”:“BIS”}] 而所有其他的都被昏迷隔开了 为了解决此问

它的作用是: 这是一款android应用程序,它将模仿我的团队正在创建的一个网站apdata.info。 这是第二个页面,它将显示符合他们要求的搜索的机场

PHP

问题是,jArray.length是=到1,即使我收到的比这多得多。从我的输出中可以看到,字符串似乎分为两部分,第一部分是 [{“apname”:“俾斯麦市机场”、“apcity”:“俾斯麦”、“apstate”:“北达科他州”、“apcountry”:“美国”、“IATA”:“BIS”}] 而所有其他的都被昏迷隔开了

为了解决此问题,我添加了一个修复此错误的函数:

private String fixBug(String result) {
        result = result.replace("][", ",");
            return result;
        }

但是我想知道为什么它会在一开始就出现。

您不应该为每个结果创建单独的json。您应该在一个json中包含所有结果。将数据保存在变量中,在while循环之外,可以将其编码为有效的json。尝试使用进行验证

现在你有

while() {
    $resultSet[] = array('apname' => $apname, 'apcity' => $apcity, 'apstate' => $apstate, 'apcountry' => $apcountry, 'IATA' => $IATA);
    print(json_encode($resultSet));
}
应该是哪一个

while() {
    $resultSet[] = array('apname' => $apname, 'apcity' => $apcity, 'apstate' => $apstate, 'apcountry' => $apcountry, 'IATA' => $IATA);
}
print(json_encode($resultSet));

谢谢,这就解决了。直到现在我才意识到机场的名字在重复,直到你指出它在while循环中。
private String fixBug(String result) {
        result = result.replace("][", ",");
            return result;
        }
while() {
    $resultSet[] = array('apname' => $apname, 'apcity' => $apcity, 'apstate' => $apstate, 'apcountry' => $apcountry, 'IATA' => $IATA);
    print(json_encode($resultSet));
}
while() {
    $resultSet[] = array('apname' => $apname, 'apcity' => $apcity, 'apstate' => $apstate, 'apcountry' => $apcountry, 'IATA' => $IATA);
}
print(json_encode($resultSet));