我需要重新组织JSON,并且我正在使用 在发布到这里之前,我已经查看过其他问题,但是我发现需要true选项,我已经对其进行了修改,但没有成功。 这是我的功能: 编辑: 答案 0 :(得分:0) 将最终输出更改为Array而不是对象之类的StdClass()
却收到此错误:Fatal error: Uncaught Error: Cannot use object of type stdClass as array
function getFilesJson($fileArray){
$arrayOfStudentFiles = [];
foreach ($fileArray as $key => $file){
$outObj = new StdClass;
$tmpFileObject = new StdClass;
$outObj->files = [];
$tmpFileObject->name = $fileArray[$key]['sequence']->name;
$tmpFileObject->compiled = true;
$tmpFileObject->lineNumbers = $fileArray[$key]['sequence']->lineNumbers;
$tmpFileObject->sequence = $fileArray[$key]['sequence']->sequence;
$tmpFileObject->defTerms = $fileArray[$key]['sequence']->defTerms;
$outObj->files[0] = $tmpFileObject;
$outObj->filesMotifs = [];
$outObj->fileName = "{$fileArray[$key]->name}.zip";
$outObj->unknowns = $fileArray[$key]['sequence']->unknowns;
$outObj->motifs = [];
$outObj->clusters = [];
$outObj->objects = [];
if (isset($fileArray[$key]->objects))
$outObj->objects = $fileArray[$key]->objects;
$arrayOfStudentFiles[] = json_encode($outObj, true);
}
return $arrayOfStudentFiles;
}
$fileArray
是stdClass的数组1 个答案:
function getFilesJson($fileArray){
$arrayOfStudentFiles = [];
foreach ($fileArray as $key => $file){
$outObj = [];
$tmpFileObject = [];
$outObj['files'] = [];
$tmpFileObject['name'] = $file['sequence']['name'];
$tmpFileObject['compiled'] = true;
$tmpFileObject['lineNumbers'] = $file['sequence']['lineNumbers'];
$tmpFileObject['sequence'] = $file['sequence']['sequence'];
$tmpFileObject['defTerms'] = $file['sequence']['defTerms'];
$outObj[files[0]] = $tmpFileObject;
$outObj['filesMotifs'] = [];
$outObj['fileName'] = "{$file['name']}.zip";
$outObj['unknowns'] = $file['sequence']['unknowns'];
$outObj['motifs'] = [];
$outObj['clusters'] = [];
$outObj['objects'] = [];
if (isset($file['objects']))
$outObj['objects'] = $file['objects'];
$arrayOfStudentFiles[] = json_encode($outObj, true);
}
return $arrayOfStudentFiles;
}