我想为Sencha-Touch应用程序输出嵌套的JSON数组,我必须发信号通知叶子节点。
Heres是正确的语法:
{
"text": "Random",
"leaf": true
}
我从服务器端用PHP创建我的数组,这里是我添加叶信息的行:
$myRow['leaf'] = 'true';
不幸的是,在json编码我的数组之后输出并不那么简单:
{
"text": "Random",
"leaf":"true"
}
true 周围的引号有问题,因为Sencha Touch无法识别布尔值。
我在我的PHP文件中尝试了 true 周围没有引号,但后来我得到了
“leaf”:“1”
在JSON回调中......
我尝试了其他一些技巧但总是同样的问题。
有人有同样的问题吗?
提前谢谢。
答案 0 :(得分:3)
适用于
$myRow['leaf'] = true;
但我使用utf8_encode()
因此将true
更改为“1”。
答案 1 :(得分:2)
你得到string
为真,因为它是php中的一个字符串...使用布尔值
$myRow['leaf'] = true;
答案 2 :(得分:0)
如果我记得这是php的版本中的一个错误< 5.2:
http://www.php.net/manual/en/function.json-encode.php#107968
只需尝试:
$jsonencodedstring = str_replace('"true"', 'true', $jsonencodedstring);
答案 3 :(得分:0)
array_walk_recursive($array, function(&$item, $key){
if(!mb_detect_encoding($item, 'utf-8', true)) {
$item = utf8_encode($item);
}
});
检查 if(!mb_detect_encoding($ item,' utf-8',true))条件,这是上述问题的解决方案,可能有助于某人:)