首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONLint与PHP JSON_DECODE的区别

JSONLint与PHP JSON_DECODE的区别
EN

Stack Overflow用户
提问于 2012-08-15 03:39:14
回答 2查看 673关注 0票数 2

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

然而,在使用PHP的json_encode时,我得到了语法错误。

我能做些什么来解决这个问题呢?我试着去掉斜杠,但得到了同样的错误。

代码语言:javascript
复制
$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字符串。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-15 03:42:57

如果你在一个php常量中写出一个字符串,你将不得不把所有的斜杠都翻倍。因此,当原始JSON类似于:

代码语言:javascript
复制
{"foo": "backslash: \\"}

对应的php字符串文字为:

代码语言:javascript
复制
$json = '{"foo": "backslash: \\\\"}';
票数 3
EN

Stack Overflow用户

发布于 2012-08-15 03:42:13

您需要更多的反斜杠,而不是更少;PHP剥离了一个级别,因为您在字符串文字中使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11959571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档