出于测试目的,我希望将数组转换为有效的Json格式。为此,我从目录中获取文件列表。这给了我结果:
{"data":["file1.txt","file2.txt","file3.txt"]}
这是我的代码:
public function getDirectories() {
$dir = $this->getConfig(); // My Directory
$array = array();
$handle = opendir($dir);
while (FALSE !== ($entry = readdir($handle))) {
if ($entry == '.' || $entry == '..')
continue;
$array[] = $entry;
}
return $array;
}
我的班级待处理:
class ArrayValue implements JsonSerializable {
public function __construct(array $array) {
$this->array = $array;
}
public function jsonSerialize() {
return array('data' => $this->array);
}
}
我认为我肯定有一个json结果格式,但这似乎无效,因为我在json中有一个数组。 那么我该如何继续获得这样的格式?
{"data":{"file1.txt","file2.txt","file3.txt"}}
答案 0 :(得分:0)
你第一个JSON字符串很好,因为文件的键是数字的,所以它是数组,而不是对象 为了简化一切,您可以收集所有数组
$data = [
[
'data' => [
'file1.txt',
],
[
'file2.txt',
],
[
'file3.txt',
],
]
];
而不仅仅是将数组转换为JSON:
$json = json_encode($data); // will return valid json
$array = json_decode($json); // will return parsed json