Json_decode在var_dump()返回null

时间:2019-03-18 06:06:10

标签: php json

[
   {
      "CvePS":362544,
      "CveClasificacion":19893,
      "Clasificacion":"Clasificación de Prueba",
      "CveUM":4185,
      "CveUnidadMedida":4185,
      "UnidadMedida":"CAJA",
      "SATClaveUnidadMedida":"BB",
      "Codigo":"69H",
      "Codigo2":null,
      "CodigoBarras":null,
      "PS":"Prueba OC Nuevo4",
      "SATClavePS":null,
      "Precio":0,
      "CveTipoFactor":1,
      "Oferta":0,
      "CveSubFamilia":-1,
      "SubFamilia":"Sin Clasificación",
      "CostoPromedio":0.0000,
      "CveClasificacionPresupuesto":-1,
      "ClasificacionPresupuesto":"Sin Clasificación",
      "UsoClasificacion":3,
      "CvePuesto":null,
      "Puesto":null,
      "PSCodigo":"69H - Prueba OC Nuevo4",
      "PSCodigoCompuesto":"69H - Prueba OC Nuevo4",
      "IVA":-1,
      "RetIVA":0,
      "MargenGanancia":0,
      "IdCtaContVentas":0,
      "IdCtaContCompras":0,
      "IdCtaContInventarios":0,
      "AsientoContableVentas":1,
      "AsientoContableCompras":1,
      "AplicaParaConcepto":true,
      "AplicaParaVenta":true,
      "EsPaquete":false,
      "Estado":"Activo",
      "CveEstado":true,
      "Fecha":"\/Date(1547535600000)\/",
      "Usuario":"Sistema",
      "CveEmpresa":1,
      "CveMoneda":1,
      "Abreviatura":"MXN",
      "Moneda":"Pesos",
      "Inv_CveMetodoInventario":0,
      "CveTipoPS":2,
      "RowNum":1,
      "FuePorXML":1,
      "EsAdminPAQ":0,
      "PendienteEnOC":0,
      "CveClasificacionCosto":null,
      "AplicaSerieLote":null,
      "AplicaCaducidad":null,
      "Estado2":null,
      "CveClasificacion2":null,
      "AplicaParaVentaP":"Si",
      "Cantidad":1,
      "UnidadBase":true,
      "CveMarca":null,
      "AlmacenSeccion":null,
      "TipoPS":"Prod",
      "CvePSPaquete":null,
      "AplicaIEPS":false,
      "IEPSGrabaIVA":false,
      "IEPSPorcentaje":0,
      "CveConceptoContable":null,
      "CveCompuesto":-1,
      "CveSATPS":null,
      "SATClavePS1":null,
      "SATDescripcion":null,
      "Descripcion":null,
      "Inventariable":false,
      "CveProveedorCompra":null,
      "ProveedorCompra":null,
      "VentaMinima":null,
      "RetISR":null,
      "SATClaveProductoServicio":" - ",
      "PrecioMinimo":null,
      "CveFraccionArancelaria":null,
      "CveUnidadAduana":null,
      "ClaveSATFraccionArancelaria":null,
      "ClaveSATUnidadAduana":null,
      "ClaveSATFraccionArancelariaDescripcion":" - ",
      "ClaveSATUnidadAduanaDescripcion":" - ",
      "CveUsuarioModifico":null,
      "UsuarioModifico":null,
      "FechaUltimaModificacion":null,
      "CveClasificacionDetalle":null,
      "CostoPromedio1":0,
      "UltimoCosto":0,
      "FechaUltimaCompra":"",
      "CveTamaño":null
   },
   {
      "CvePS":362540,
      "CveClasificacion":19893,
      "Clasificacion":"Clasificación de Prueba",
      "CveUM":4185,
      "CveUnidadMedida":4185,
      "UnidadMedida":"CAJA",
      "SATClaveUnidadMedida":"BB",
      "Codigo":"66H",
      "Codigo2":null,
      "CodigoBarras":null,
      "PS":"Prueba OC Nuevo",
      "SATClavePS":null,
      "Precio":0,
      "CveTipoFactor":1,
      "Oferta":0,
      "CveSubFamilia":-1,
      "SubFamilia":"Sin Clasificación",
      "CostoPromedio":0.0000,
      "CveClasificacionPresupuesto":-1,
      "ClasificacionPresupuesto":"Sin Clasificación",
      "UsoClasificacion":3,
      "CvePuesto":null,
      "Puesto":null,
      "PSCodigo":"66H - Prueba OC Nuevo",
      "PSCodigoCompuesto":"66H - Prueba OC Nuevo",
      "IVA":-1,
      "RetIVA":0,
      "MargenGanancia":0,
      "IdCtaContVentas":0,
      "IdCtaContCompras":0,
      "IdCtaContInventarios":0,
      "AsientoContableVentas":1,
      "AsientoContableCompras":1,
      "AplicaParaConcepto":true,
      "AplicaParaVenta":true,
      "EsPaquete":false,
      "Estado":"Activo",
      "CveEstado":true,
      "Fecha":"\/Date(1547535600000)\/",
      "Usuario":"Sistema",
      "CveEmpresa":1,
      "CveMoneda":1,
      "Abreviatura":"MXN",
      "Moneda":"Pesos",
      "Inv_CveMetodoInventario":0,
      "CveTipoPS":2,
      "RowNum":2,
      "FuePorXML":1,
      "EsAdminPAQ":0,
      "PendienteEnOC":0,
      "CveClasificacionCosto":null,
      "AplicaSerieLote":null,
      "AplicaCaducidad":null,
      "Estado2":null,
      "CveClasificacion2":null,
      "AplicaParaVentaP":"Si",
      "Cantidad":1,
      "UnidadBase":true,
      "CveMarca":null,
      "AlmacenSeccion":null,
      "TipoPS":"Prod",
      "CvePSPaquete":null,
      "AplicaIEPS":false,
      "IEPSGrabaIVA":false,
      "IEPSPorcentaje":0,
      "CveConceptoContable":null,
      "CveCompuesto":-1,
      "CveSATPS":null,
      "SATClavePS1":null,
      "SATDescripcion":null,
      "Descripcion":null,
      "Inventariable":false,
      "CveProveedorCompra":null,
      "ProveedorCompra":null,
      "VentaMinima":null,
      "RetISR":null,
      "SATClaveProductoServicio":" - ",
      "PrecioMinimo":null,
      "CveFraccionArancelaria":null,
      "CveUnidadAduana":null,
      "ClaveSATFraccionArancelaria":null,
      "ClaveSATUnidadAduana":null,
      "ClaveSATFraccionArancelariaDescripcion":" - ",
      "ClaveSATUnidadAduanaDescripcion":" - ",
      "CveUsuarioModifico":null,
      "UsuarioModifico":null,
      "FechaUltimaModificacion":null,
      "CveClasificacionDetalle":null,
      "CostoPromedio1":0,
      "UltimoCosto":0,
      "FechaUltimaCompra":"",
      "CveTamaño":null
   }
]

一旦我想使用$json_data = json_decode($response)$json_data = json_decode($response, true),我就会从CURL中获得以下json: 我得到了一个空var_dump($json_data)。还尝试了json_last_error($json_data),但它也为NULL。

当我尝试遍历$json_data并得到“提供的无效参数”时,这种情况上升了。

编辑1:将CURL添加到json_decode代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch); 
curl_close($ch);

$json_data = json_decode($response);
//$json_data = json_decode($response, true);

var_dump($json_data);

已经验证的$response不为空

编辑2:即使json linter说json_last_error_msg()Syntax error也会抛出Valid JSON

1 个答案:

答案 0 :(得分:0)

按照@trincot的建议,检查您的字符串UTF-8编码是用以下几行完成的

$your_param = mb_convert_encoding($encoded_param_string,'UTF-8','UTF-8');

,并检查您的php.ini max_post_limit。