PHP JSON-String无法正常工作

时间:2015-02-16 11:26:01

标签: php json

我有JSON-String喜欢

{"aaa":"foo", "bbb":"bar", "ccc":"hello", "ddd":"world"}

实际上我通过$_GET收到了这个字符串。它是base64编码的,如果我解码它,我有这个字符串。

因此,我希望在PHP中将其用作object。这是做

$data = json_decode( base64_decode( $_GET['data'] ) );

$data始终为NULL。如果我做

echo base64_decode( $_GET['data'] );

然后将有效JSON-String打印为已过期。

我做错了什么?

我之前尝试过调用base64_encode但结果相同......

1 个答案:

答案 0 :(得分:1)

检查json_last_error()并查看JSON解析器遇到的错误。如果遇到5,那么您的JSON数据很可能包含未编码的UTF-8序列。您应该始终使用JSON编码库来处理导出到json的数据。

请参阅http://php.net/manual/en/function.json-last-error.php以获取可以使用json_last_error处理的错误的列表(用户注释中有定义名称表的INT)

0 = JSON_ERROR_NONE
1 = JSON_ERROR_DEPTH
2 = JSON_ERROR_STATE_MISMATCH
3 = JSON_ERROR_CTRL_CHAR
4 = JSON_ERROR_SYNTAX
5 = JSON_ERROR_UTF8