javascript - JSON 数组无法使用 Eval 进行解码

标签 javascript ajax json eval

我有两个文件,一个包含一个 PHP 数组,通过 json_encode 进行回显,另一个包含网页的 javascript 函数。一个这样的函数,看起来像这样(并且尚未完成):

/*
 * Function: selectVictim
 * Called from function laserOn()
 *
 * Selects a random victim from a list of victims
 *
 * @return String: victim
 */
function selectVictim()
{
var params = "url=queenofsheep.com/Sheep/victims.php";
var request = new ajaxRequest();

request.open("POST", "victims.php", true);
request.setRequestHeader("Content-Type",
                             "application/x-www-form-urlencoded");
request.setRequestHeader("Content-Length", params.length);
request.setRequestHeader("Connection", "close");

request.onreadystatechange = function ()
{
    if (this.readyState == 4)
    {
        if (this.status == 200)
        {
            if (this.responseText != null )
            {
                var vicString = this.responseText;
                var vicArray = eval('"'+vicString+'"');
                //var vicArray = vicString.split(',');
                //var numVic = Math.floor(Math.random() * (vicArray - 1));
                alert(vicArray);
            }
            else alert("Ajax error: No data received");
        }
        else alert("Ajax Error: " + this.statusText);
    }
}

request.send(params);
}

应该从其他文件中获取数组并对其执行超出本问题范围的操作。不幸的是,虽然 this.responseText 包含格式为 JSON 编码的数组

var jsonArr = 
     ["1","2,","3"]

激活该函数不会执行任何操作,并且 evaling this.responseText 会产生“未定义”。

我在这里做错了什么?如果需要的话,我可以提供更多真实代码、实际数组等的示例。这让我发疯。

最佳答案

尝试将“(”和“)”添加到 Eval 函数中。我过去就是这样做的

var myObject = eval('(' + vicString + ')');

关于javascript - JSON 数组无法使用 Eval 进行解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3577980/

相关文章:

javascript - Firefox 扩展中的 XMLHttpRequest

PHP POST 通过 AJAX 循环通过 javascript 发送对象文字

java - 从服务器接收的字符串创建 JSON 对象

javascript - 如何解析json中的特殊字符?

javascript - 不删除 contenteditable 设置为 true 的 div 中的子元素

javascript - 阿普塔纳工作室 : jQuery code completion/assist for variables

javascript - 使整个 DIV 可点击(下拉列表除外)

javascript - 我的 Javascript 应该在点击时加载一个 CSS,但同时加载了两个

javascript - 如何从ajax响应中获取对象属性

javascript - 根据值重新排列部分 JSON