This question already has an answer here:
I need to communicate with my parser json in my java class to populate a gridview with images. The php code bellow is outputing:
{"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"]}
How should write it to set the same key value "images" to output?:
{"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 file:
$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);
</div>
It's not valid to have the same key twice in an object. They will just overwrite eachother. Best you can do is make it a key in your array:
$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'];
}
which will output something like this (note the escaping too):
{
"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"
]
}
}
As per comments, an array of objects:
$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']);
}
producing the following output:
{
"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"
}
]
}