0

这是我的代码

<?php
$something = array(); 
while ($row = mysql_fetch_assoc($result)) { 
    $something[] = $row;
} 
mysql_close($con);
?>

<script type="text/javascript"> 
    some= <?php echo json_encode($something); ?>; 
</script>

上面的代码会生成:

[{"id":"1","title":"Ray","author":"Ray","thumb":"some source","views":"10000"}]

但我想生成一个像这样的json字符串:

[{"id":"1","title":"Ray","author":"Ray","image":{"cls":"image","thumb":"some source","views":"10000"}}]

有什么帮助吗?

4

1 回答 1

3

json_encode编码您拥有的任何对象结构。如果您希望某些属性作为子对象,则必须在内存中创建此类对象。

例如,如果你有

$a = array("id"=>1, 
           "title"=>"Ray", 
           "image" => 
               array(
                 "thumb"=>"some source",
                 "cls"=>"image"
                )
           );

它将以您提到的类似方式在 json 中编码。

这意味着您必须循环遍历 mysql 结果并在之前创建新结构。然后调用 json_encode 就可以了。

于 2012-11-30T09:41:21.267 回答