Php Json_decode在var_dump()处返回null
一旦我想使用Php Json_decode在var_dump()处返回null,php,json,Php,Json,一旦我想使用$json\u data=json\u decode($response)或$json\u data=json\u decode($response,true) 我得到一个空的var\u转储($json\u data)。还尝试了json\u last\u错误($json\u data),但它也是空的 当我试图通过$json_数据进行迭代时,出现了这种情况,并得到了一个“提供的参数无效” 编辑1:将CURL添加到json_解码代码: [ { "CvePS":36254
$json\u data=json\u decode($response)
或$json\u data=json\u decode($response,true)
我得到一个空的var\u转储($json\u data)
。还尝试了json\u last\u错误($json\u data)
,但它也是空的
当我试图通过$json_数据
进行迭代时,出现了这种情况,并得到了一个“提供的参数无效”
编辑1:将CURL添加到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
}
]
已验证的$response
不为空
编辑2:
json\u last\u error\u msg()
抛出语法错误
,即使json linter按照@trincot的建议说有效的json
检查字符串UTF-8编码,使用以下行执行
$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);
并使用php.ini max_post_limit进行检查。根据@trincot的建议,检查您的UTF-8编码字符串,并使用以下行进行检查
$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);
还可以使用php.ini max\u post\u limit检查您的json。使用json linter检查您的json。@u\u mulder已经这样做了,返回了“有效的json”,我测试了它,没有问题。请共享您的全部代码,您的代码可能有问题。上面实际上是
var\u dump($response)
?使用json linter检查您的json。@u\u mulder已经这样做了,返回“Valid JSON”我测试过了,没问题,请分享你的全部代码,你的代码可能有问题上面实际上是var\u dump($response)
?如果你有一个包含特殊字符的字符串,json_encode或json_decode不允许您这样做,因为json有一个字符串返回类型。如果您有一个包含特殊字符的字符串,json_encode或json_decode不允许您这样做,因为json有一个字符串返回类型。