将JSON对象转换为数组?

时间:2013-02-21 18:43:14

标签: json

我在firebug上的控制台上有这个,

[Object { fa_id="1167535",  f_id="1000",  loc_type="6",  more...}, Object { fa_id="1167535",  f_id="1000",  loc_type="6",  more...}]

它是来自服务器端的数据。现在,我如何将其转换为数组,以便可以在另一个文件上使用此数据。我尝试了JSON.parsejQuery.parseJSON,但都没有用。

3 个答案:

答案 0 :(得分:5)

这不是JSON,它是一个Javascript对象数组,而不是一个字符串。我的猜测是你从jQuery ajax调用中得到了这个,并且你设置了dataType : 'json',以便jQuery自动将JSON解析为这个数组。

要将其发送到PHP脚本,您可以使用以下命令将其转换回JSON:

var myString = JSON.stringify(data);

然后激活对PHP脚本的ajax调用,将其作为POST数据:

var myString = JSON.stringify(data);
$.post('page.php', { data : myString }, function(){
    console.log( "sent" );
});

在PHP中,您可以使用以下方法对其进行解码:

$data = json_decode($_POST['data']); // <-- or whatever your post variable is named

foreach($data as $obj)
{
    echo $obj->fa_id;
}

答案 1 :(得分:0)

如果你想获得一个php数组使用这个

http://php.net/manual/en/function.json-decode.php

答案 2 :(得分:0)

您提供的字符串不是有效的JSON。

[Object { fa_id="1167535",  f_id="1000",  loc_type="6",  more...}, 
 Object { fa_id="1167535",  f_id="1000",  loc_type="6",  more...}]

特别是,JSON解析器无法解释“Object”和“more...”字符串。

假设您正在检查的对象是名为foo的变量:

console.log(JSON.stringify(foo));

应该将对象的有效JSON表示打印到Javascript控制台。