我有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但结果相同......
答案 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