Javascript ::将JSON字符串post回调转换为纯javascript数组

时间:2015-04-11 16:06:18

标签: javascript php arrays ajax json

我写了一个PHP函数来检查数组重复。

如果数组没有重复项,则将数组作为JSON字符串返回,否则它将打印(作为纯文本)重复(/ d)值(/ s)。

我的PHP功能完美运行。

现在我要做的是CONVERT返回JSON字符串并将其用作纯javascript数组(假设没有重复项)。

这是我的 hezi.php 文件:

if($_SERVER['REQUEST_METHOD']==='POST')
{

    $gangina=array
    (
        'douplicateTesting',
        '1',
        '2',
        '3',
        'douplicateTesting',
        '4',
        '3'
    );

    function dupValidator()
    {

        global $gangina;

        if(count($gangina)===count(array_unique($gangina)))
        {
            header('Content-type: application/json');
            echo json_encode($gangina);
        }
        else
        {
            header('Content-Type: text/plain');
            echo'Opps! This array contains duplicates'."\r\n".str_repeat(chr(45),36)."\r\n\r\n";
            print_r(array_diff_key($gangina,array_unique($gangina)));
            exit;
        }

    }

    dupValidator();

}

这是我的 index.htm 文件(没有javascript ajax帖子回调):

<pre id=myStringify></pre>

<script>

var callbackArray=
[
    {
        value:1,
        type:wavFile
    }
    ,
    {
        value:2,
        type:aiffFile
    }
];

document.getElementById('myStringify').innerHTML=JSON.stringify(callbackArray,null,4);

</script>

在我的index.htm中编写了一个虚拟JavaScript数组作为原型,因此更容易理解我将要实现的目标。

所以这个纯JavaScript数组:

var callbackArray=[{value:1,type:wavFile},{value:2,type:aiffFile}];

将通过后AJAX回调请求创建:

var callbackArray=<!--post AJAX callback request-->

我知道如何通过jQuery来实现它,但我想用纯JavaScript来实现它。

1 个答案:

答案 0 :(得分:1)

使用JavaScript函数JSON.parse(testString)。该文档还提到eval()用于旧浏览器,但如上所述,如果可能,您不应使用它来防止潜在的安全问题。

var obj = JSON.parse(text);

这是一个有效的fiddle