在CODEIGNITER中向JSON键添加空格和特殊字符
我有这样的json对象,站点运行的是codeigniter,这是最终的问题所在在CODEIGNITER中向JSON键添加空格和特殊字符,json,codeigniter,Json,Codeigniter,我有这样的json对象,站点运行的是codeigniter,这是最终的问题所在 var obj = { states : { 'state' : {cities : ['city', 'city2', 'another']}, } } 问题是有些状态有特殊的字符,如,或空格。当添加这些状态时,我会得到一个不允许的关键字符。错误。如果我删除特殊字符和空间,它就可以正常工作 我必须求助于其他方法吗?我不确定是否是这样,但url中不允许使用这些字符。
var obj = {
states : {
'state' : {cities : ['city', 'city2', 'another']},
}
}
问题是有些状态有特殊的字符,如,或空格。当添加这些状态时,我会得到一个不允许的关键字符。错误。如果我删除特殊字符和空间,它就可以正常工作
我必须求助于其他方法吗?我不确定是否是这样,但url中不允许使用这些字符。也许您正在使用
GET
?尝试使用POST
我不确定这是否就是它,但url中不允许使用这些字符。也许您正在使用GET
?尝试使用POST
尝试在PHP端使用此函数
function fixjson($json){
return '('.preg_replace('/^([^[{].*)$/', '[$1]', $json).')';}
$json = fixjson($json);
尝试在PHP端使用此函数
function fixjson($json){
return '('.preg_replace('/^([^[{].*)$/', '[$1]', $json).')';}
$json = fixjson($json);
有些角色是不允许的。您可以在将它们插入JSON之前对它们进行urlencode()-请参见一些字符是不允许的。您可以在将它们插入JSON之前对它们进行urlencode()-请参见。事实证明,此错误是由CI的输入库引起的。在第215行,您将找到_clean_input_keys函数,该函数使用preg_match()禁止键中的某些字符。因此,当您发送JSON并将其作为数组接收时,php可能会抛出错误
要解决此问题,您可以扩展库或编辑CI核心。结果表明,此错误是由CI的输入库引起的。在第215行,您将找到_clean_input_keys函数,该函数使用preg_match()禁止键中的某些字符。因此,当您发送JSON并将其作为数组接收时,php可能会抛出错误 要解决此问题,您可以扩展库或编辑CI核心
json从未到达php端。json从未到达php端。问题是,javascript创建了对象,因此urlenecode是禁止的。请尝试encodeURIComponent(str)-查看问题是,javascript创建了对象,因此urlenecode是禁止的。请尝试encodeURIComponent(str)-查看