Php Laravel:我无法访问嵌套json中的对象属性

Php Laravel:我无法访问嵌套json中的对象属性,php,json,angular,laravel,Php,Json,Angular,Laravel,我正在使用angular和laravel,我的请求中有这个json,但由于某些原因,我无法访问名为“llave_scriptografica”的键中的数据,这是完整的json {username: "eeded", contrasena: null, llave_criptografica: {…}, clave_criptografica: null} “llave_scriptografica”中的数据如下 正如您所看到的,我刚刚用base64编码并发送了一个密钥,但是当我尝试访问它时,我

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

{username: "eeded", contrasena: null, llave_criptografica: {…}, clave_criptografica: null}
“llave_scriptografica”中的数据如下

正如您所看到的,我刚刚用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]
    })

        }
  }
}

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

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

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

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

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

通过
var\u dump($request->llave\u scriptografica)可以获得什么?如果是另一个json,您需要对其进行解码。您在此处复制的示例不是有效的json,例如,键不在引号内。如果您能发布准确的请求正文,那将很有帮助。嗨,当我尝试解码它时,我得到了这个错误,json_decode()希望参数1是字符串,数组给定请执行
dd($request->all())
并编辑问题以包含转储数据。因此
llave_scriptografica
是一个数组,所以您需要使用PHP中的数组方法来访问它,而不是对象。请注意,您的错误消息是两个不同的错误:
尝试获取非对象的属性
来自PHP,通过正确访问该属性可以修复<代码>JSON中JSON位置1处的意外数字。parse
是一个javascript错误,可能是因为您返回的是字符串,而不是JSON。几乎<代码>$request->llave\u scriptografica(或
$request['llave\u scriptografica']
)正常,但
$request->llave\u scriptografica->filename
不正常,而
$request->llave\u scriptografica['filename']
正常(或应该正常)。
$request["llave_criptografica"]["filename"];