我写了一个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来实现它。
答案 0 :(得分:1)
使用JavaScript函数JSON.parse(testString)。该文档还提到eval()用于旧浏览器,但如上所述,如果可能,您不应使用它来防止潜在的安全问题。
var obj = JSON.parse(text);
这是一个有效的fiddle。