我从数据库中提取数据并尝试使用json_encode编码为JSON数据。但是为了让我在Android应用程序中更容易阅读。我正在跳的格式与我目前正在做的不同。请参阅底部编码字符串示例。任何帮助都会很棒。在此先感谢。
$result = $db->query($query);
while($info = mysql_fetch_array($result))
{
$content[] = $info;
}
$count = count($content);
$result=array();
for($i=0;$i<$count;$i++)
{
$result[id][] = $content[$i]['imageID'];
$result[name][] = $content[$i]['Name'];
$result[thumb][] = $content[$i]['Thumb'];
$result[path][] = $content[$i]['Path'];
}
echo json_encode($result);
{"id":["1","2","3"],"name":["Dragon","fly","bug"],"thumb":["thm_polaroid.jpg","thm_default.jpg","thm_enhanced-buzz-9667-1270841394-4.jpg"],"path":["polaroid.jpg","default.jpg","enhanced-buzz-9667-1270841394-4.jpg"]}
但是当我用json_encode编码时,我正在尝试格式化我的数组。
[{"id":"1","name":"Dragon","thumb":"thm_polaroid.jpg","path":"polaroid.jpg"},{"id":"2","name":"Fly","thumb":"thm_default.jpg","path":"default.jpg"},{"id":"3","name":"Bug","thumb":"thm_enhanced-buzz-9667-1270841394-4.jpg","path":"enhanced-buzz-9667-1270841394-4.jpg"}]
答案 0 :(得分:4)
嗯,有一个问题。这不是有效的JSON:
{"image":["1","Dragon","thm_polaroid.jpg","polaroid.jpg"],
"image":["2","fly","thm_default.jpg","default.jpg"]}
JSON对象每个唯一键只能有一个值。这意味着你的后一个图像密钥会破坏前者的价值。
如果您对此感到满意,那么:
[["1","Dragon","thm_polaroid.jpg","polaroid.jpg"],
["2","fly","thm_default.jpg","default.jpg"]]
然后你可以简单地使用mysql_fetch_row:
$result = $db->query($query);
while($info = mysql_fetch_row($result))
{
$content[] = $info;
}
echo json_encode($content);
通常,在PHP中,最好使用foreach( $arr as $val )
(或$ arr作为$ key =&gt; $ val)。 for
循环应限于严格必要的时候。
答案 1 :(得分:1)
您需要将迭代器$ i添加到设置数组
for($i=0;$i<$count;$i++) { $result[$i][id] = $content[$i]['imageID']; $result[$i][name] = $content[$i]['Name']; $result[$i][thumb] = $content[$i]['Thumb']; $result[$i][path] = $content[$i]['Path']; }
答案 2 :(得分:0)
<?
$result = $db->query($query);
while($info = mysql_fetch_array($result))
$content[] = $info;
$result=array();
$count = count($content);
for ($x=0;$x<$count;++$x)
{
$result[$x][] = $content[$x]['imageID'];
$result[$x][] = $content[$x]['Name'];
$result[$x][] = $content[$x]['Thumb'];
$result[$x][] = $content[$x]['Path'];
}
echo json_encode($result);
?>