将JSON.parse转换为数组

6

我有一个JSON对象:

var deniedTimeIDs = JSON.parse('[808,809,812,811,814,815]');

所以,我想通过 jQuery 向该对象添加/删除数据。怎么做?我可以将它转换成数组吗? 谢谢。


3
请展示您的 JSON 数据,不要展示服务器代码。我们无法猜测它的样子。 - Diodeus - James MacFarlane
你想要解析什么?JSON.parse可以解析一个json对象的字符串表示,并将其转换为实际的json对象。但你传递的不是一个json字符串。 - Niks
1
你的代码在我的电脑上真的可以运行。http://jsfiddle.net/Q7Sp5/ - Kevin B
在执行上述操作后,您的 deniedTimeIDs 已经保存了一个有效的数组。之后您可以直接使用它。 - Niks
如何向此添加/删除数据? - John
@John 使用splice进行添加/删除操作 http://www.w3schools.com/jsref/jsref_splice.asp - Candide
4个回答

5
以下将为您提供一个 JavaScript 对象。
var deniedTimeIDs = JSON.parse('[808,809,812,811,814,815]');

你可以使用 .push.pop 将元素添加/删除到数组中。
deniedTimeIDs.push(100); //will result in [808,809,812,811,814,815,100]

进一步阅读:

JSON.parseArray.pushArray.pop


4

解析字符串后返回的任何数组,都可以使用jQuery或JavaScript进行处理。我们通常使用Push()和Pop()函数来处理任何数组。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script>
    var deniedTimeIDs = JSON.parse('[808,809,812,811,814,815]');
    // You can use push/Pop to remove the IDs from an array.
    console.log(deniedTimeIDs);// o/p=> [808,809,812,811,814,815]
    //You can iterate this array using jQuery.
    $.each(deniedTimeIDs,function(key,val){
        console.log(val); 
    })
});
</script>

3

如果您想将该字符串解析并表示为数组,可以执行以下操作:

// Warning: eval is weird
var arr = eval('[808,809,812,811,814,815]');

或者

var arr= JSON.parse('[808,809,812,811,814,815]');

现在,arr 是一个有效的 JavaScript 数组。

2021 年更新:添加官方文档文章,解释为什么调用 eval() 函数是危险的:

eval()


1
var deniedTimeIDs = $.parseJSON('[808,809,812,811,814,815]');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接