我正在针对受Fastest way to check if a string is JSON in PHP?
启发的功能编写单元测试例如,我尝试将控制字符添加到JSON字符串中,以使json_last_error
等于JSON_ERROR_CTRL_CHAR
,但它不起作用。它"做"在JSON中给出错误,但它似乎总是JSON_ERROR_SYNTAX
。我做过一些研究,但不确定如何以某种方式使其失败。
我如何更改下面的JSON字符串,以使json_last_error
评估为JSON_ERROR_SYNTAX
或JSON_ERROR_NONE
以外的其他字符串?
$json = '[{user_id":"\x0230", "username":"stack"},{"user_id":14,"username":"over"}]';
$json = '[{"user_id":"\t\\r\\n", "username":"stack"},{"user_id":14,"username":"over"}]';
提前谢谢,亚当
答案 0 :(得分:1)
我能够得到JSON_ERROR_CTRL_CHAR
这样的话:
$json = chr(0).'[{"user_id":"13", "username":"stack"},{"user_id":14,"username":"over"}]';
仅供参考,无论chr(0)
在字符串中的哪个位置,它似乎都会出现相同的错误,它至少适用于chr(0)
- chr(31)
,除了9,10和13。