gpt4 book ai didi

php - 将 JS 字符串转换为 JSON 对象

转载 作者:行者123 更新时间:2023-12-02 19:26:38 25 4
gpt4 key购买 nike

我正在尝试使用验证插件为远程验证器函数动态构建 JS。但由于某种原因,它没有将 JS 转换为对象,而是将其视为字符串并嵌入双引号。

例如:

我的 PHP 代码是:

$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 字符串。

评估它的唯一方法是使用 Function 或 eval

但是在不知道您要解决什么问题的情况下,我怀疑评估字符串是否是解决方案。

使用包含带有函数的 javascript 对象文字的字符串,可以执行以下操作。 PS我还没有使用你的整个字符串:)

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"

关于php - 将 JS 字符串转换为 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11975132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com