我通过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(数据),但仍然没有得到数组。我能做什么。我需要输出类型值
答案 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']