2013-12-17 52 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 blob無效。 – mario

+0

所以我應該試着打印$行?因爲當我這樣做,我沒有得到一個輸出或只有「陣列」對不起,我知道這是非常基本的東西。 – user3109750

回答

0

變化while($row=mysql_fetch_assoc($last))

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

你好!當我這樣做的結果是:{「0」:「{」contactList「:[{」userId「:」1062「,」name「:... – user3109750

+0

哦!我更新了我的回答 –

+0

Jeyyy :)它的工作原理!非常感謝!我不知道,我可以通過這種方式訪問​​json。 – user3109750

0

我看到的是保存的數據已經是JSON編碼,並獲得輸出你只需要解碼。下面一行

變化

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

嗨,感謝您的快速響應!但是,當我嘗試所以我得到以下錯誤:警告:json_decode()期望參數1是字符串,數組中給出... – user3109750

+0

我已經更新了我的答案.. – kwelsan