一尘不染

字符串似乎是有效的JSON,但是`json_decode()`返回NULL

json

我想我已经找到了错误所在:

    $convertJSON = file_get_contents("http://www.google.com/ig/calculator?hl=en&q=" . $currencyValue . $currencySelectValue . "%3D%3FUSD", true);
    var_dump($convertJSON);
    $convertArr = json_decode($convertJSON, true);
    var_dump($convertArr);

我进行调试,得到以下结果(我输入了555和欧元):

string(68) "{lhs: "555 Euros",rhs: "796.64700 U.S. dollars",error: "",icc: true}"
NULL

因此看来,用于解码JSON对象的PHP函数在某处做错了。有什么帮助吗?


阅读 234

收藏
2020-07-27

共1个答案

一尘不染

Google给您的响应不是有效的JSON,因为未引用标签。您必须自己解析。

$response = '{lhs: "555 Euros",rhs: "796.64700 U.S. dollars",error: "",icc: true';
preg_match('/rhs:\s*"([^"]+)"/', $response, $m);
echo $m[1];

输出:

796.64700 U.S. dollars
2020-07-27