PHP's json_decode返回空字符串(不是NULL)
PHP's json_decode returns empty string (not NULL)
我正在通过AJAX将一个字符串化的JSON从客户端发送到服务器。然而,PHP无法对其进行解码,即使它的结构对我来说似乎是正确的。我已经看过类似问题的答案,在大多数问题中,json_decode
返回NULL
,但这里的情况并非如此,相反,它返回一个空字符串。
Javascript发送的内容:
{"columns":{"l1":{"name":"Impressions"},"l2":{"name":"Clicks"}},"domain":"Media Performance"}
PHP打印出的内容(与转义引号相同):
{'"columns'":{'"l1'":{'"name'":'"Impressions'"},'"l2'":{'"name'":'"Clicks'"}},'"domain'":'"Media Performance'"}
有人能看到这里的问题吗?这看起来很简单,但json_decode
一直返回一个空字符串。
我很抱歉没有发布代码。
这是AJAX(str
是上面给出的JS字符串):
$.ajax({
type: "POST",
url: base + "handlers/createreport.php",
data: {
str: str
}
})
这里是createreport.php
,没有任何处理:
$str = $_POST['str'];
echo $str; //prints out the string given above with escaped quotes
echo json_decode($str); //empty string
AJAX中发送的data
由服务器作为POST参数接收,因此您不需要解码json,否则将其用作数组。
我只是测试了一下,结果:var_dump($_POST['str']);
<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b>
'columns' <font color='#888a85'>=></font>
<b>array</b>
'l1' <font color='#888a85'>=></font>
<b>array</b>
'name' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'Impressions'</font> <i>(length=11)</i>
'l2' <font color='#888a85'>=></font>
<b>array</b>
'name' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'Clicks'</font> <i>(length=6)</i>
'domain' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'Media Performance'</font> <i>(length=17)</i>
相关文章:
- PHP's json_decode返回空字符串(不是NULL)
- 日期选择器更改事件抛出”;TypeError:字符串不是函数;
- 什么时候字符串不是字符串?当它没有 include() 方法时
- 未捕获的类型错误:字符串不是函数
- 主干.js和车把:字符串不是一个函数
- JavaScript 字符串不是“字符串”
- 如何在javascript中解析xml字符串?(不是客户端,与浏览器相关)
- 为什么我的字符串不是字符串
- JavaScript 字符串不是一个函数
- 字符串不是JavaScript函数
- 未捕获的类型错误:字符串不是函数
- 可以通过主干集合查看错误字符串不是函数
- 字符串不是函数
- 敲除js时出错字符串不是函数
- BreezeJS查询筛选器字符串不是有效的TimeSpan值
- 正则表达式仅在字符串不是属性值时才替换字符串
- 字符串不是对象,那么为什么它们有属性
- 调用jQuery后.i18n库我得到未捕获的TypeError:字符串不是我的登录方法中的函数
- Jquery:使用字符串作为函数(错误:字符串不是函数)
- 我怎么能得到一个HTML标签的内部HTML值,是在一个字符串(不是DOM)使用jQuery或原型