将json_encode值转换为javascript数组

时间:2014-04-11 15:03:55

标签: php jquery json

我通过json_encode向javascript发送一个php数组。这是编码后的数组

"[{\"albumid\":\"ASaBFzCtl8\",\"albumname\":\"anni\",\"type\":\"3\",\"access\":\"2\",\"itemcount\":\"2\"},{\"albumid\":\"EmgsZ43ehT\",\"albumname\":\"testalbum\",\"type\":\"1\",\"access\":\"1\",\"itemcount\":\"0\"},{\"albumid\":\"Jf4H4SvFGk\",\"albumname\":\"test2album\",\"type\":\"3\",\"access\":\"1\",\"itemcount\":\"0\"},{\"albumid\":\"k3pacBSmIl\",\"albumname\":\"testalbumpvt\",\"type\":\"3\",\"access\":\"2\",\"itemcount\":\"0\"}]"

在javascript上我使用了jquery.parse(数据),但仍然没有得到数组。我能做什么。我需要输出类型值

3 个答案:

答案 0 :(得分:1)

假设您的PHP正在生成JavaScript代码,请执行以下操作:

var x = <?php echo json_encode(yourPhpArray); ?>;

json_encode返回一个JSON字符串。 JSON是JavaScript文字表示法的一个子集,因此您可以在表达式有效的任何地方直接将JSON放入JavaScript代码中(例如在赋值中的=之后,如上所述)。不需要JSON.parse$.parseJSON(事实上,使用它们会失败)。

x将是一个JavaScript对象(如果PHP&#34;关联&#34;数组具有非数字键,因此json_encode输出{...})或JavaScript数组(如果json_encode输出[...])。

另一方面,如果你正在返回只是 JSON(不生成JavaScript代码),也许回复ajax请求,那么如果你正在使用jQuery查询它,jQuery将为您解析结果。如果您直接进行XHR,则需要解析结果(例如var x = JSON.parse(xhr.responseText);)。

答案 1 :(得分:0)

假设您想在客户端使用解码/解析它:

JSON.parse(yourString);

答案 2 :(得分:0)

jQuery.parseJSON()返回一个对象,而不是一个数组

https://api.jquery.com/jQuery.parseJSON/

您可以使用

var obj = jQuery.parseJSON(...);
var myValue = obj.myValue;

而不是obj ['myValue']