gpt4 book ai didi

php - JSONLint 和 PHP JSON_DECODE 的区别

转载 作者:行者123 更新时间:2023-12-04 05:35:47 26 4
gpt4 key购买 nike

在下面的代码中,$datastring 变量中的 JSON 作为 JSONLint 上的有效 JSON 传递。

但是,在使用 PHP 的 json_encode 时出现语法错误。

我能做些什么来解决这个问题?我试过剥离斜线,但得到同样的错误。

$datastring = '[{"Program": 3034370,"Column": "CLI_RID","Value": "1006278"},{"Program": 3034370,"Column": "Filename","Value": "\\\\henery\\1006278\\CONFIRMATION LETTER AVAILABLE.html"},{"Program": 3034370,"Column": "EVENT_CODE","Value": "20120725ZZAQ"},{"Program": 3034370,"Column": "DOC_NAME","Value": "Confirmation Email"},{"Program": 3034370,"Column": "PrintDate","Value": "20120410"},{"Program": 2959623,"Column": "ISSUE","Value": "Res Spring"},{"Program": 2959623,"Column": "FILENAME","Value": "~/Res/Mag.aspx?I=res_spring&P=1006278"}]';
$data = json_decode($datastring, true);

// Define the errors.
$json_errors = array(
JSON_ERROR_NONE => 'No error has occurred',
JSON_ERROR_DEPTH => 'The maximum stack depth has been exceeded',
JSON_ERROR_CTRL_CHAR => 'Control character error, possibly incorrectly encoded',
JSON_ERROR_SYNTAX => 'Syntax error',
);

if(!$data) {
echo 'Last error : '. $json_errors[json_last_error()]. PHP_EOL. PHP_EOL;
} else {
echo print_r($data, true);
}

我将从 ASP.Net 页面获取此 JSON 字符串。

最佳答案

如果您在 php 文字常量中写出一个字符串,则必须将所有斜杠都加倍。所以当原始 JSON 类似于:

{"foo": "backslash: \\"}

对应的 php 字符串文字是:
$json = '{"foo": "backslash: \\\\"}';

关于php - JSONLint 和 PHP JSON_DECODE 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11959571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com