2012-01-02 4 views
2

У меня есть этот JSON в настоящее время:выходного массив JSON в PHP

{"quest_id":"1","quest_title":"Buy 3 pints of draft and a large pizza and then get desert","quest_price":"15","quest_points":"100"}{"quest_id":"2","quest_title":"Hello WOrld","quest_price":"50","quest_points":"10"} 

Я задавался вопрос, как я мог бы выход этого:

{"quests": {"quest_id":"1","quest_title":"Buy 3 pints of draft and a large pizza and then get desert","quest_price":"15","quest_points":"100"}{"quest_id":"2","quest_title":"Hello WOrld","quest_price":"50","quest_points":"10"} 
} 

Вот код в PHP:

while($result=mysql_fetch_array($number, MYSQL_ASSOC)){ 
     print(json_encode($result)); 

    } 
+0

ли вы попробовать что-то ? Это звучит довольно легко ... –

+1

Проведите некоторое время здесь: http://www.php.net/manual/en/ref.json.php –

+0

ваш второй бит JSON на самом деле не действителен. Вам нужно иметь 2 квеста в списке или что-то в этом роде. – James

ответ

6

Попробуйте следующее:

$result = array('quests' => array()); 
while($row = mysql_fetch_array($number, MYSQL_ASSOC)){ 
    $result['quests'][] = $row 
} 
echo json_encode($result); 
+1

Возможно, вы захотите на самом деле json_encode :-) – cmbuckley

+0

'echo (json_encode ($ result));' –

+0

Ответы, полученные людьми за эти дни ... ;-) –

0

Если я правильно понял, что вы пытаетесь сделать, получить пакет JSON со всеми строками, а затем цикл над ними, чтобы поместить их в массив, а затем закодировать весь массив:

<?php 
    $result = mysql_query($query); 
    $out = array('quests' => array()); 
    while ($row = mysql_fetch_assoc($result)) { 
     $out['quests'][] = $row; 
    } 
    print json_encode($out); 
?> 
+0

Изменить '$ out [] = $ row' to '$ out ['quests'] [] = $ row' –

+0

Право, конечно, отредактировано, посмертно. – Umbrella

+0

Неправильно снова. должно быть точно: '$ out ['quests'] [] = $ row;'. Если это только '$ out ['quests'] = $ row;', каждый раз, когда вы создадите массив. –

Смежные вопросы