2015-08-01 6 views
1

У меня этот json сохранен в моей базе данных в столбце «цена» с типом «текст».json_decode многомерный из базы данных

{ 
    "desks": { 
    "Dedicated Desk": "$400 mo" 
    }, 
    "private offices": { 
    "1 Person": "$550 mo", 
    "2 Person": "$1100 mo", 
    "3 Person": "$1600 mo", 
    "4 Person": "$2100 mo", 
    "6 Person": "$3300 mo" 
    }, 
    "flexible membership": { 
    "Starting at": "$45 mo", 
    "Every Extra Day": "$50 Day" 
    } 
} 

Затем я позвоню из PHP, чтобы вернуть все поля в моей базе данных и закодировать их как json.

$json = json_encode($response,JSON_PRETTY_PRINT); 
echo $json; 

$ Ответ - это ответ из базы данных. Когда я var_dump на $ ответ я получаю

array(22) { 
    [0]=> 
     object(stdClass)#6 (38) { 
     [...] 

     ["price"]=> 
     string(242) "{"desks":{"Dedicated Desk":"$400 mo"},"private offices":{"1 Person":"$550 mo","2 Person":"$1100 mo","3 Person":"$1600 mo","4 Person":"$2100 mo","6 Person":"$3300 mo"},"flexible membership":{"Starting at":"$45 mo","Every Extra Day":"$50 Day"}}" 

     [...] 
     } 
    [...] 
} 

Когда эхо результат json_encode я получить

[ 
    { 
     [...] 

     "price": "{\"desks\":{\"Dedicated Desk\":\"$400 mo\"},\"private offices\":{\"1 Person\":\"$550 mo\",\"2 Person\":\"$1100 mo\",\"3 Person\":\"$1600 mo\",\"4 Person\":\"$2100 mo\",\"6 Person\":\"$3300 mo\"},\"flexible membership\":{\"Starting at\":\"$45 mo\",\"Every Extra Day\":\"$50 Day\"}}", 

     [...] 
    }, 
    [...] 
] 

Моя проблема json_encode принимает JSON из базы данных и форматирования в виде строки. Я пытаюсь заставить его форматировать его как часть многомерной структуры json. Это то, чего я пытаюсь достичь:

[ 
    { 
     "price":[ 
     { 
      "desks":{ 
       "Dedicated Desk":"$400 mo" 
      }, 
      "private offices":{ 
       "1 Person":"$550 mo", 
       "2 Person":"$1100 mo", 
       "3 Person":"$1600 mo", 
       "4 Person":"$2100 mo", 
       "6 Person":"$3300 mo" 
      }, 
      "flexible membership":{ 
       "Starting at":"$45 mo", 
       "Every Extra Day":"$50 Day" 
      } 
     } 
     ] 
    } 
] 

Любая помощь будет принята с благодарностью. Запуск последней версии php.

+0

Вы хотите изменить первый, чтобы последний был? Am i right? –

+0

Yep ............. – emaadali

ответ

0

Он кодирует его как строку, потому что это строка. Что вам нужно сделать, это сначала декодировать его.

$response['price'] = json_decode($response['price']); 
$json = json_encode($response,JSON_PRETTY_PRINT); 
echo $json; 
+0

Im не совсем в состоянии декодировать эту часть, а затем перекодировать ее. Есть ли что-нибудь, что я могу сделать из базы данных, как ее сохранить в БД? – emaadali

+0

Я не знаю о возможностях хранения объектов MySQL, что было бы единственным, что вы могли бы сделать на уровне базы данных. Не могли бы вы немного рассказать об отсутствии возможности его декодирования? Если вы пишете строку 'json_encode', нет ли способа написать еще одну строку? – trex005

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