//...snip..
$result = curl_exec($ch);
curl_close($ch);
return $result;
php curl请求的响应显示为
“{\” 结果\ “:\” 成功\ “\ ”条目\“:\ ”22 \“,\ ”确认\“:\ ”是\“}”
但是,输出不应该在引号前面有\
。
如何删除这些引号并返回正确的 JSON
{
"result":"success",
"entry":"22",
"confirm":"yes"
}
我尝试过的选项很少return print_r($result)
。这是按预期返回的,但我认为这不是正确的方法。
PHP版本 - 5.6.16
答案 0 :(得分:1)
你的输出是正确的,你有有效的json;这是一个字符串。
所有你需要做的就是解码它:
$s = "{\"result\":\"success\",\"entry\":\"22\",\"confirm\":\"yes\"}";
var_dump(json_decode($s));
答案 1 :(得分:0)
您可以使用stripslashes()从JSON字符串中删除斜杠,然后使用json_decode()解码JSON字符串。
像这样,
$json_string="{\"result\":\"success\",\"entry\":\"22\",\"confirm\":\"yes\"}";
$json_string=stripslashes($json_string);
$json_array=json_decode($json_string,true);
print_r($json_array);
上面的方法只是从字符串中删除斜杠并使用 json_decode()来解码JSON字符串。
但您也可以使用斜杠直接解码字符串。 (感谢@jeroen) 像这样,
$json_string="{\"result\":\"success\",\"entry\":\"22\",\"confirm\":\"yes\"}";
$json_array=json_decode($json_string,true);
print_r($json_array);
json_decode()中的第二个参数表示您要解析数组中的JSON字符串而不是默认行为的对象。
答案 2 :(得分:0)
只需在curl中使用以下标题选项,将返回json对象:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
因为默认接受类型是Text / Plain,所以它会返回你解析的sting。通过设置上面的标题,您将收到json对象。