PHP:给一个JSON对象数组取名?

15

我已经成功地从PHP文件中获取了来自数据库的数据。 从那里(data.php),

$output = json_encode($result);

结果看起来会像这样:

$output=[{"kitty":"Whitely"},{"kitty":"Tabby"},{"kitty":"Ruby"},{"kitty":"Silver"}]

那么如何用PHP格式将名称为“kitten”的数组赋值为一组小猫对象?

例如:

"kitten":[{"kitty":"Whitely"},{"kitty":"Tabby"},{"kitty":"Ruby"},{"kitty":"Silver"}]
5个回答

39

在“kitten”键上,您必须将结果包装在另一个数组中:

$output = json_encode(['kitten' => $result]);

1

试试这个:

<?php

$kitty = array('kitten' => array());
$kitty['kitty'][] = array('kitty' => 'Tabby');
$kitty['kitty'][] = array('kitty' => 'Ruby');
$kitty['kitty'][] = array('kitty' => 'Silver');

var_dump($kitty);
var_dump(json_encode($kitty));

这导致产生了以下结果:{"kitty":[{"kitty":"Tabby"},{"kitty":"Ruby"},{"kitty":"Silver"}]}

@user1739825 请看我的回答。 - Brewal

1
 $result =array('kitten'=> $output);

输出

{
"kitten":[
          {"kitty":"Whitely"},
          {"kitty":"Tabby"},
          {"kitty":"Ruby"},
          {"kitty":"Silver"}
        ]
}

0

尝试使用这个

$output['kitty'][] = json_encode($result);

0

使用嵌套的encodedecode

$json = '[{"kitty":"Whitely"},{"kitty":"Tabby"},{"kitty":"Ruby"},{"kitty":"Silver"}]';

echo json_encode(array('kitten' => json_decode($json)));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接