2015-10-29 61 views
0

我需要在我的java類中與我的解析器json進行通信以使用圖像填充gridview。 PHP代碼波紋管outputing:設置相同的鍵值json PHP

{"posts":["http://fisioterapeutacamila.com/iMoveis/img/apto01.jpg", 
"http://fisioterapeutacamila.com/iMoveis/img/apto01.jpg", 
"http://fisioterapeutacamila.com/iMoveis/img/apto01.jpg", 
"http://fisioterapeutacamila.com/iMoveis/img/apto01.jpg",  
"http://fisioterapeutacamila.com/iMoveis/img/apto01.jpg"]} 

應該怎麼寫它來設置相同的密鑰值 「圖像」 輸出?:

{"posts":[{"images":"http://fisioterapeutacamila.com/iMoveis/img/apto01.jpg", 
"images":"http://fisioterapeutacamila.com/iMoveis/img/apto01.jpg", 
"images":"http://fisioterapeutacamila.com/iMoveis/img/apto01.jpg", 
"images":"http://fisioterapeutacamila.com/iMoveis/img/apto01.jpg", 
"images":"http://fisioterapeutacamila.com/iMoveis/img/apto01.jpg"}]} 

PHP文件:

$sql = "SELECT * FROM iMoveis"; 
$result = mysqli_query($mysqli, $sql); 

$response = array(); 
$images = array(); 

while($row = mysqli_fetch_assoc($result)){ 

    $images[] = $row['img1']; 
    $images[] = $row['img2']; 
    $images[] = $row['img3']; 
    $images[] = $row['img4']; 
    $images[] = $row['img5']; 

} 

$response['posts'] = $images; 

echo json_encode($response, JSON_UNESCAPED_SLASHES); 

回答

0

這不是在對象中有兩次具有相同的密鑰。他們會重寫彼此。你能做的最好的就是讓你的數組中的一個關鍵:

$images = array('images' => array()); 

while($row = mysqli_fetch_assoc($result)){ 

    $images['images'][] = $row['img1']; 
    $images['images'][] = $row['img2']; 
    $images['images'][] = $row['img3']; 
    $images['images'][] = $row['img4']; 
    $images['images'][] = $row['img5']; 
} 

這將輸出類似這樣(注意過退讓):

{ 
    "posts":{ 
     "images":[ 
      "http:\/\/fisioterapeutacamila.com\/iMoveis\/img\/apto01.jpg", 
      "http:\/\/fisioterapeutacamila.com\/iMoveis\/img\/apto01.jpg", 
      "http:\/\/fisioterapeutacamila.com\/iMoveis\/img\/apto01.jpg", 
      "http:\/\/fisioterapeutacamila.com\/iMoveis\/img\/apto01.jpg" 
     ] 
    } 
} 

按照意見,對象的數組:

$images = array(); 

while ($row = mysqli_fetch_assoc($result)) { 
    $images[] = array('image' => $row['img1']); 
    $images[] = array('image' => $row['img2']); 
    $images[] = array('image' => $row['img3']); 
    $images[] = array('image' => $row['img4']); 
    $images[] = array('image' => $row['img5']); 
} 

產生以下輸出:

{ 

    "posts":[ 
     { 
      "image":"http:\/\/fisioterapeutacamila.com\/iMoveis\/img\/apto01.jpg" 
     }, 
     { 
      "image":"http:\/\/fisioterapeutacamila.com\/iMoveis\/img\/apto01.jpg" 
     }, 
     { 
      "image":"http:\/\/fisioterapeutacamila.com\/iMoveis\/img\/apto01.jpg" 
     }, 
     { 
      "image":"http:\/\/fisioterapeutacamila.com\/iMoveis\/img\/apto01.jpg" 
     }, 
     { 
      "image":"http:\/\/fisioterapeutacamila.com\/iMoveis\/img\/apto01.jpg" 
     } 
    ] 

} 
+1

好的,但這不是我需要的輸出。我需要在我的java類中找到de字符串「images」。不是陣列「圖像」 –

+0

正如我所說,你「需要」的輸出是無效的。 json_encode不可能輸出這個。 – rjdown

+0

好的,請在這裏看看http://javatechig.com/?json=get_recent_posts&count=45。在數組「帖子」裏面有數組「附件」和字符串「url」。我更簡單地刪除「附件」並將「網址」更改爲「圖像」。在每個「url」上,他都會獲得價值。 –