2017-07-31 51 views
0

我需要這樣輸出。我想從逗號分隔的數組中創建JSON

{"name":"","lat":"28.619284999999998","lng":"77.02616189999999"},{"name":"","lat":"28.619284999999998","lng":"77.02616189999999"},{"name":"","lat":"28.619284999999998","lng":"77.02616189999999"},{"name":"","lat":"28.619284999999998","lng":"77.02616189999999"},{"name":"","lat":"28.619284999999998","lng":"77.02616189999999"},{"name":"","lat":"28.619284999999998","lng":"77.02616189999999"},{"name":"","lat":"28.6192875","lng":"77.0261699"},{"name":"","lat":"28.6192887","lng":"77.02616139999999"},{"name":"","lat":"28.6192887","lng":"77.02616139999999"},{"name":"","lat":"28.6192887","lng":"77.02616139999999"},{"name":"","lat":"28.6192887","lng":"77.02616139999999"},{"name":"","lat":"28.6236227","lng":"77.0317984"},{"name":"","lat":"28.6244627","lng":"77.0322383"},{"name":"","lat":"28.6245415","lng":"77.0331425"},{"name":"","lat":"28.6245418","lng":"77.0331053"},{"name":"","lat":"28.6246156","lng":"77.0322415"},{"name":"","lat":"28.6242647","lng":"77.0316073"} 

PHP腳本

$sql="SELECT name,lat,lng FROM `in_point_creation` WHERE 1"; 
$result=mysql_query($sql); 
while ($row=mysql_fetch_assoc($result)) { 
    $json_array = json_encode($row); 
    print_r($json_array); 
} 

電流輸出

{"name":"","lat":"28.619284999999998","lng":"77.02616189999999"}{"name":"","lat":"28.619284999999998","lng":"77.02616189999999"}{"name":"","lat":"28.619284999999998","lng":"77.02616189999999"}{"name":"","lat":"28.619284999999998","lng":"77.02616189999999"}{"name":"","lat":"28.619284999999998","lng":"77.02616189999999"}{"name":"","lat":"28.619284999999998","lng":"77.02616189999999"}{"name":"","lat":"28.6192875","lng":"77.0261699"}{"name":"","lat":"28.6192887","lng":"77.02616139999999"}{"name":"","lat":"28.6192887","lng":"77.02616139999999"}{"name":"","lat":"28.6192887","lng":"77.02616139999999"}{"name":"","lat":"28.6192887","lng":"77.02616139999999"}{"name":"","lat":"28.6236227","lng":"77.0317984"}{"name":"","lat":"28.6244627","lng":"77.0322383"}{"name":"","lat":"28.6245415","lng":"77.0331425"}{"name":"","lat":"28.6245418","lng":"77.0331053"}{"name":"","lat":"28.6246156","lng":"77.0322415"}{"name":"","lat":"28.6242647","lng":"77.0316073"} 

感謝

+1

樹立你所需要的磁盤陣列,然後進行編碼並輸出* *一次。 –

回答

3

你需要創建你的呼喚之前需要對整個對象g JSON編碼:

$sql="SELECT name,lat,lng FROM `in_point_creation` WHERE 1"; 
$result=mysql_query($sql); //You need to switch to mysqli , mysql is no longer a valid choice 
$json_array = []; 
while ($row=mysql_fetch_assoc($result)) { 
    $json_array[] = $row; 
} 
$jsonString = json_encode($json_array); 
print_r($jsonString); 
+0

感謝工作正常 – Sandeep

0

有多種方法可以解決您的「問題」。

但首先,請不要使用mysql_ *函數=>deprecated in PHP 5.5
請改用mysqli_ *函數。

如果你只有幾百行,你可能可以建立一個包含所有項目的數組,如Paul Crovella和apokryfos所說的。 但是,如果有成千上萬的行,您應該儘可能快地寫出它們,並且不要將它們保存到RAM中。因爲PHP在RAM中的空間有限。

也許你可以嘗試沒有循環:

$conn = mysqli_connect('host','username','password','database') 
$query = 'SELECT name,lat,lng FROM `in_point_creation` WHERE 1'; 
$result = $conn->query($query); 
$data = mysqli_fetch_all($result,MYSQLI_ASSOC); 
echo json_encode($data);