Php 将JS字符串转换为JSON对象
我正在尝试使用验证插件为远程验证程序函数构建一个动态JS。但出于某种原因,它没有将JS转换为对象,而是将其视为字符串并嵌入双引号 例: 我的PHP代码是:Php 将JS字符串转换为JSON对象,php,javascript,jquery,Php,Javascript,Jquery,我正在尝试使用验证插件为远程验证程序函数构建一个动态JS。但出于某种原因,它没有将JS转换为对象,而是将其视为字符串并嵌入双引号 例: 我的PHP代码是: $remoteUrl = '/test/checkusername'; $remoteValidatorJs = "{url: '". $remoteUrl . "', type: 'post', async:false,
$remoteUrl = '/test/checkusername';
$remoteValidatorJs = "{url: '". $remoteUrl . "',
type: 'post',
async:false,
dataType: 'html',
beforeSend: function(){
alert('Validating Form Field');
},
complete: function(){
alert('Completed Validation of Form Field');
},
dataFilter: function(html) {
return html;
}
}";
$validation[ 'rules' ][ 'Name' ][ 'remote' ] = $remoteValidatorJs;
如何在$remoteValidatorJs
变量中框显或转换JS,以便在打印数组时,它最终看起来像以下“remote”部分中的内容:
$("#testForm").validate( {
"rules":{
"Name":{
"remote":{
url: '/test/checkusername',
type: 'post',
async:false,
dataType: 'html',
beforeSend: function(){
alert('Validating Form Field');
},complete: function(){
alert('Completed Validation of Form Field');
},
dataFilter: function(html) {
return html;
}
}
}
}
} );
谢谢,JSON是javascript的子集,您的示例不是有效的JSON,因为它是javascript字符串 评估它的唯一方法是使用函数或eval 但是,在不知道您试图解决什么的情况下,我怀疑求值字符串是解决方案 在函数中使用包含javascript对象文本的字符串,可以执行以下操作。PS我还没用完你的全部字符串:)
为什么变量开头有引号
$remoteValidatorJs=“
-这将使整个变量成为一个字符串,它是PHP语法,用于将字符串存储在变量中。没有“json对象”这样的东西(处理stringnative之间转换的对象除外)。有json字符串,可以转换回本机对象/数组。那么,构建对象的有效方法是什么?
var remoteUrl = "http://something.com";
var evalString =
[
'{url:"' + remoteUrl + '",',
'type:"post",',
'async:false}'
].join('')
evalString #// => "{url:"http://something.com",type:"post",async:false}"
var x= new Function("return " + evalString + ";")()
#// => Object
async: false
type: "post"
url: "http://something.com"