function encode($array)
{
if(version_compare(PHP_VERSION,'5.4.0','<')){
$str = json_encode($array);
$str = preg_replace_callback("#\\\u([0-9a-f]{4})#i",function($matchs){
return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));
},$str);
return $str;
}else{
return json_encode($array, JSON_UNESCAPED_UNICODE);
}
}
這是轉換中文的函數;我從數據庫中查出數據然后轉為json格式,這是html中js;
function test(){
var id = $(".father option:selected").val();
$.ajax({
url: 'regulation_type.php',
type: 'post',
data: {id:id , act:'ajax'},
success:function(msg){
//var str = '{"id":"2","title":"刑法的任務","parent_id":"1","chapter":"第一章"}';
//obj = JSON.parse(str);
console.log(msg);
str = msg.replace('[{','{');
str_1 = msg.replace('}]','}');
console.log(str_1);
直接輸出msg,得到[{"id":"2","title":"刑法的任務","parent_id":"1","chapter":"第一章"}],外面套了個[],我以為是數組,用typeof看了下是字符串,obj = JSON.parse(json);輸出obj.id沒有值,然后單獨寫了{"id":"2","title":"刑法的任務","parent_id":"1","chapter":"第一章"};用obj = JSON.parse(json);輸出obj.id有值,然后就想著把外面的[]去掉,可是怎么去都去不掉,str = msg.replace('[{','{');str_1 = msg.replace('}]','}');右邊的可以去掉,可是左邊的一直去不掉,有沒有哪個大神知道原因的,求解,在線等!
添加回答
舉報
0/150
提交
取消