Laravel:我无法访问嵌套json

时间:2019-04-04 15:05:10

标签: php json angular laravel

我正在使用angular和laravel,我的请求中包含此json,但是由于某些原因,我无法访问名为“ llave_criptografica”的键中的数据,这是完整的json

{username: "eeded", contrasena: null, llave_criptografica: {…}, clave_criptografica: null}

“ llave_criptografica”中的数据是这个

{filename: "011503046233.p12", filetype: "application/x-pkcs12", value: "MIIaPAIBAzCCGfYG-base-64-encode"}

如您所见,我只是用base64编码并发送了一个密钥,但是当我尝试访问它时,出现此错误

        return $request->llave_criptografica->filename;
  

试图获取非对象的属性

如果我尝试以数组形式访问,那就是错误

        return $request->llave_criptografica["filename"];
  

JSON中意外的数字,位于JSON.parse的位置1

这是我存储文件数据的功能

onFileChange(event) {
let reader = new FileReader();
if(event.target.files && event.target.files.length > 0) {
  let file = event.target.files[0];
  reader.readAsDataURL(file);
  reader.onload = () => {
    this.formCertificado.get('llave_criptografica').setValue({
      filename: file.name,
      filetype: file.type,
      value: reader.result.split(',')[1]
    })

        }
  }
}

enter image description here

当我记录日志时,这是密钥的内容

array ( 'username' => 'eded', 'contrasena' => NULL, 'llave_criptografica' => array ( 'filename' => '011503046233.p12', 'filetype' => 'application/x-pkcs12', 'value' => 'MIIaP-base-64', ), 'clave_criptografica' => NULL, )

1 个答案:

答案 0 :(得分:1)

要访问数据,您必须使用[]作为数组,而不是要使用->的对象。您可以这样操作:

$request["llave_criptografica"]["filename"]; 

如果您需要像访问对象一样访问它,可以始终将其强制转换为对象。