`{\
"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对象保存到文件中,如果我想再次使用它,我需要转义特殊字符。
答案 0 :(得分:1)
尚未对其进行测试,但它可能有效:)
<?php
str_replace('\"', '"', $jsonString);
?>
答案 1 :(得分: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_*
功能。