2015-08-21 7 views
0

Я пытаюсь создать объект json из моей базы данных mysql для проекта android. Мне нужен выход что-то вроде этого:Создание объекта json из базы данных sql с использованием php

{ 
    "feed": [ 
     { 
      "id": 1, 
      "name": "National Geographic Channel", 
      "image": "http://api.androidhive.info/feed/img/cosmos.jpg", 
      "status": "\"Science is a beautiful and emotional human endeavor,\" says Brannon Braga, executive producer and director. \"And Cosmos is all about making science an experience.\"", 
      "profilePic": "http://api.androidhive.info/feed/img/nat.jpg", 
      "timeStamp": "1403375851930", 
      "url": null 
     }, 
     { 
      "id": 2, 
      "name": "TIME", 
      "image": "http://api.androidhive.info/feed/img/time_best.jpg", 
      "status": "30 years of Cirque du Soleil's best photos", 
      "profilePic": "http://api.androidhive.info/feed/img/time.png", 
      "timeStamp": "1403375851930", 
      "url": "http://ti.me/1qW8MLB" 
     } 
] 
} 

Но я получаю что-то Ouput так:

{"feed":[{"id":"0","name":"punith","image":"","status":"ucfyfcyfffffffffffffffffffffffffffffffff","profilePic":"http:\/\/api.androidhive.info\/feed\/img\/nat.jpg","timestamp":"1403375851930","url":""}]} 

Все на одной строке, а атрибут id не должны быть кавычки. Что я мог do.This мой PHP-файл

<?php 
define('HOST',''); 
define('USER',''); 
define('PASS',''); 
define('DB',''); 

$con = mysqli_connect(HOST,USER,PASS,DB); 

$sql = "select * from timeline"; 

$res = mysqli_query($con,$sql); 

$result = array(); 

while($row = mysqli_fetch_array($res)){ 
array_push($result, 
array('id'=>$row[0], 
'name'=>$row[1], 
'image'=>$row[2], 
'status'=>$row[3], 
'profilePic'=>$row[4], 
'timestamp'=>$row[5], 
'url'=>$row[6] 
)); 
} 

echo json_encode(array("feed"=>$result)); 

mysqli_close($con); 

?> 

И это будет влиять, если выход на одной линии. База данных содержит точно такие же столбцы, что и атрибуты.

Заранее спасибо

+0

Вы можете указать 'JSON_PRETTY_PRINT' в качестве второго параметра [' json_encode'] (http://www.php.net/manual/en/function. JSON-encode.php). – Passerby

ответ

1

Try кодирование с JSON_PRETTY_PRINT

$json_string = json_encode($data, JSON_PRETTY_PRINT); 

где data является ваш результат массива.

в вашем случае

echo json_encode(array("feed"=>$result),JSON_PRETTY_PRINT); 

передать этот Tutorial из официальных PHP документации.

0

ID в кавычках

идентификатор в кавычках, потому что это строка, не является целым числом. Вы можете изменить это, изменив это:

array('id'=>$row[0] 

к этому:

array('id'=>intval($row[0]) 

"Довольно печать"

Собираем на нескольких линиях будет влиять только на читаемость, но не так, как данные вычисляются, но вы можете его убрать: Pretty-Printing JSON with PHP

0

Как и другие ответы, было бы более семантически включать заголовок json, я обнаружил, что включение этого также помогает с появлением самого json, так что он отформатирован правильно, а не все непрерывные строка.

header('Content-Type: application/json'); 
0

Для PHP> 5,4

$json=json_encode(array("feed"=>$result),JSON_PRETTY_PRINT); 
header('Content-Type: application/json'); 
print_r($json); 
Смежные вопросы