You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP解析异常JSON出现空结果的问题求助

问题分析与解决方案

你遇到的问题核心是JSON结构的路径访问错误,同时建议你增加解码失败的校验逻辑,避免后续代码因为解码异常导致无意义的空值问题。

问题根源

观察你提供的ResultString嵌套JSON结构,Login字段是嵌套在DadosBasicos对象下的,而你的代码直接尝试访问$json_002->Login——这个路径并不存在,所以自然会得到空值。

正确的层级路径是:
ResultString → DadosBasicos → Login

修正后的代码

$response = '{"Status":1,"CodigoErro":null,"SKYException":"","ResultString":"{\"DadosBasicos\":{\"NomeCompleto\":null,\"Nome\":null,\"Sobrenome\":null,\"DataNascimento\":\"0001-01-01T00:00:00\",\"EstadoCivil\":null,\"Login\":\"xxxxxxxxxxxxx@yahoo.com.br\",\"Sexo\":0,\"CPF_CNPJ\":\"09414954775\",\"IdPerfilFaturamento\":null,\"IdConta\":\"13879034\",\"Assinaturas\":[{\"Id\":\"62606412\",\"ParentId\":null,\"Email\":\"xxxxxxxxxxxxx@yahoo.com.br\",\"DNA\":\"010000000001001000000010000000001000000000000000001000000010000000000001000000000000000010110001111101000000001000000001000000000111101000000100000101000001000011111111111110000000000000000000011000000010101011101111110100000000111110101101111100010000000000011011111111011010011011100011111111111101111111111111111111111111111111111101111111111110101111111111111011110100000011111111111111111111000\",\"StatusAssinatura\":1,\"ValorEmAberto\":null,\"CEP\":\"27540440\",\"TipoAssinatura\":0,\"ModoEntrega\":0,\"Produtos\":[],\"Equipamentos\":[],\"IlhaMaster\":false,\"Tier1\":true,\"PrincipalId\":\"062606412\",\"Enderecos\":null,\"Telefones\":null,\"TipoOrganizacao\":0,\"PassoRegua\":null,\"GeoCode\":\"BRL04100\",\"Fidelizado\":false,\"PossuiInteratividadePrePago\":false,\"PossuiSKYDigitalCortesia\":false,\"PossuiCanaisCortesiaLivre\":false,\"DataAtivacao\":\"2011-01-25T00:00:00\",\"DataFidelizacao\":\"2012-01-25T00:00:00\",\"TipoCliente\":\"F\",\"Segmento\":null,\"Pacote\":null,\"GloboCongelada\":[],\"ListaDeCanais\":[],\"CodigoTipoAssinatura\":null,\"CanceladoAteSeisMeses\":false,\"DataCancelamento\":null}]},\"DadosComplementares\":null}","Token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjcGZfY25waiI6IjA5NDE0OTU0Nzc1Iiwic2lnbmF0dXJlcyI6WyI2MjYwNjQxMiJdLCJpYXQiOjE1NDc5MTA4NDgsImV4cCI6MTU0Nzk5NzI0OH0.ho1V67cI4jZPXZ-DqnF-WzCRSKSY38uJuQs0tRXrdYM"}';

// 解码外层JSON,同时校验解码是否成功
$json_bad = json_decode($response);
if (json_last_error() !== JSON_ERROR_NONE) {
    die('外层JSON解码失败: ' . json_last_error_msg());
}

// 解码ResultString中的嵌套JSON,同样添加校验
$json_002 = json_decode($json_bad->ResultString);
if (json_last_error() !== JSON_ERROR_NONE) {
    die('ResultString解码失败: ' . json_last_error_msg());
}

// 按照正确的层级路径获取Login字段
$email = $json_002->DadosBasicos->Login;
var_dump($email); // 此时应该能输出目标邮箱地址

额外调试建议

  • 每次调用json_decode后,用json_last_error()和json_last_error_msg()检查解码状态,能快速区分是JSON格式问题还是路径访问错误。
  • 如果你习惯使用数组操作,可以给json_decode添加第二个参数true,让它返回关联数组,此时访问路径变为$json_002['DadosBasicos']['Login']。

内容的提问来源于stack exchange,提问作者Donald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:09:23