1
  `{\
     "wins\":[\"http://nintendos.t15.org/folder.dsos\",\"http://nintendos.t15.org
     /NintendOS%20Office/word.dsos?create=true\"
  ]}`

这是我用 PHP 写入文件的 JSON 字符串。

我不在乎哪种语言(JS 或 PHP),但我将如何转义数据(如“\ to”)以使用它?确切的代码如下:

function SaveSession(){
 try{
   if(user){
    var date=new Date();
    var month=date.getMonth()+1;
    var day=date.getDate();
    var year=date.getFullYear();
    var hour=date.getHours();
    var minutes=date.getMinutes();
    var seconds=date.getSeconds();
    if(minutes<10){
        minutes="0"+minutes;
    }
    if(seconds<10){
           seconds="0"+seconds;
    }
    dt=""+month+"/"+day+"/"+year+" "+hour+":"+minutes+":"+seconds+"";
    var session=new Object();
    session.wins=new Array();
    var pages=document.getElementsByClassName("page");
        if(pages[0]){
           session.wins.push(pages[0].getElementsByTagName("iframe")[0].src);
        }
        if(pages[1]){                            
                   session.wins.push(pages[1].getElementsByTagName("iframe")[0].src);
        }
        if(pages[2]){
                   session.wins.push(pages[2].getElementsByTagName("iframe")[0].src);
        }if(pages[3]){
                   session.wins.push(pages[3].getElementsByTagName("iframe")[0].src);
        }if(pages[4]){
           wins.push(pages[4].getElementsByTagName("iframe")[0].src);
        }if(pages[5]){
                   session.wins.push(pages[5].getElementsByTagName("iframe")[0].src);
        }if(pages[6]){
               session.wins.push(pages[6].getElementsByTagName("iframe")[0].src);
        }if(pages[7]){
               session.wins.push(pages[7].getElementsByTagName("iframe")[0].src);
        }if(pages[8]){
               session.wins.push(pages[8].getElementsByTagName("iframe")[0].src);
        }if(pages[9]){
               session.wins.push(pages[9].getElementsByTagName("iframe")[0].src);
        }
            ajaxObj.onreadystatechange=function(){
        if(ajaxObj.readyState>=4 && ajaxObj.status==200){
    }
    else{
    }
     }
     var sessionData=escape(JSON.stringify(session));
     ajaxObj.open("POST","req.php",true);
     ajaxObj.setRequestHeader("Content-type","application/x-www-form-urlencoded");
     ajaxObj.send("save_session=true&user="+username+"&session="+sessionData+"");
}
}
catch(err){
    alert("Error. Unable to save session. "+err+"");
}
 }

基本上,我想将 JSON 对象保存到文件中,如果我想再次使用它,我需要转义特殊字符。

4

2 回答 2

1

还没有测试过,但它可能会工作:)

<?php 

str_replace('\"', '"', $jsonString);

?>
于 2012-06-07T18:03:14.950 回答
0

其实很简单。

<?php
    $a = array('x' => '"xyzhttp://test\escape');
    $b = json_encode($a); // {"x":"\"xyzhttp:\/\/test\\escape"}
    print_r(json_decode($b, true)); // Array ( [x] => "xyzhttp://test\escape ) 
?>

只需使用这些json_*功能。

于 2012-06-07T18:06:55.763 回答