2013-12-17 14 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