我将Lightspeed API整合到我的网站,如POS系统。我目前得到的值是file_get_contents(),但是当我试图加载它时,我给出了json_last_error()的错误4。
这是我的代码:
$maps_url = "http://cloud-docs.merchantos.com/API/Account/797/Item/?itemID=1";
$maps_json = file_get_contents($maps_url);
//print_r($maps_json);
$maps_array = json_decode(stripslashes($maps_json), true);
echo $data = $maps_array['Item']['systemSku'];
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
json_last_error();
答案 0 :(得分:2)
然后让我重新说一下:
json_decode
失败。$maps_url
中没有可用的数据。['Item']['systemSku']
赢得的原因。stripslashes
无论如何都没有任何意义。)因此,请调查您正在使用的API。弄清楚是否有可用的JSON变体。否则抛弃你的代码,而是使用XML遍历前端,例如SimpleXML
。
答案 1 :(得分:0)
正如马里奥所说,$ maps_url接收XML。
查看xml_parse_into_struct以获取有关XML到阵列转换的帮助。