【问题标题】:jqgrid json data not working with json_decodejqgrid json数据不适用于json_decode
【发布时间】:2012-08-26 09:09:12
【问题描述】:

我有一个 json 字符串发布到服务器,如下所示:

{\"groupOp\":\"AND\",\"rules\":[{\"field\":\"screen_name\",\"op\":\"bw\",\"data\":\"aaa\"}]}

对我来说看起来不错,但问题是 PHP 函数 json_decode 返回 NULL。我做了一个键盘示例来说明这里的问题:http://codepad.org/SOJw9cZb。我必须对这个字符串做什么才能让 json_decode 正常工作?

这个json字符串由jqgridFilter Toolbar模块发送到服务器,用于识别搜索参数。

谢谢!

【问题讨论】:

  • json 数据无效,请在此处验证您的 json jsonlint.com

标签: php javascript json jqgrid


【解决方案1】:
var_dump(json_decode(str_replace('\"', '"', '{\"groupOp\":\"AND\",\"rules\":[{\"field\":\"screen_name\",\"op\":\"bw\",\"data\":\"aaa\"}]}')));

工作得很好。即将 \" 转换为 "

有效的 JSON 是

{"groupOp":"AND","rules":[{"field":"screen_name","op":"bw","data":"aaa"}]}

【讨论】:

  • 是的,我也发现了这个,我想知道为什么 jgGrid 传递我的脚本无效的 json 字符串
  • 抱歉 - 不知道。他们可能认为像 PHP 3 那样预先转义双引号更安全(并且已经删除)。这让我想到了另一个想法 - 改用 strip_slashes() :)
猜你喜欢
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多