2013-12-17 2 views
-3

У меня есть следующий код в моем MySql строке таблицы «контакты»:json_encode добавляет имя таблицы

{ 
    "contactList": 
    [ 
     { 
      "userId":"1062", 
      "name":"Test User 1" 
     }, 
     { 
      "userId":"1063", 
      "name":"Test User 2" 
     } 
    ] 
} 

Когда я кодировать json_encode содержание добавляет имя таблицы к результату:

{"contacts":"{"contactList": 
[{"userId":"1062","name":"Test User 1"},{"userId":"1063","name":"Test User 2"}] 
    }"} 

Может ли кто-нибудь сказать мне, как избежать этого или где моя ошибка? Я не смог найти ответ :(

Вот мой PHP код:

<?php 
... 
    $last = mysql_query("SELECT contacts FROM users WHERE userId = 1000"); 
    while($row=mysql_fetch_assoc($last)) 
     $jsonEncode = (json_encode($row)); 
    $output = preg_replace('/\\\"/',"\"", $jsonEncode); 
    print($output); 
    mysql_close(); 
?> 
+0

Когда вы кодируете, что именно? Если это произойдет в JSON, это означает, что он находится в массиве, который вы поставляете json_encode. – JAL

+1

Если ваша колонка уже содержит JSON, почему вы снова json_encoding? Preg_replace также не делает его действительным. И вы не должны делать это в цикле в любом случае, поскольку несколько конкатенированных блочных JSON недействительны. – mario

+0

Так что я должен просто попытаться напечатать строку $? Причина, когда я делаю так, я не получил выход или только «Массив». Извините, что я знаю, что это действительно базовый материал. – user3109750

ответ

0

Изменение while($row=mysql_fetch_assoc($last)) для

while($row=mysql_fetch_array($last)) 
$jsonEncode = json_encode($row['contacts']); 
+0

Hi & thans! Когда я делаю так, результат: {"0": "{" contactList ": [{" userId ":" 1062 "," name ": ... – user3109750

+0

О, я обновил свой ответ –

+0

Jeyyy :) он работает! спасибо большое, я понятия не имел, что я могу получить доступ к json таким образом. – user3109750

0

Я вижу, что сохраненные данные уже в формате JSON кодируются и получить выход вам просто нужно декодировать.

Изменение ниже линии

$jsonEncode = json_decode($row['contacts']); 
+0

Привет, спасибо за быстрый ответ! Но когда я пытаюсь, я получаю следующую ошибку: Warning: json_decode() ожидает, что параметр 1 будет строка, массив, заданный в ... – user3109750

+0

Я обновил свой ответ .. – kwelsan

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