2014-03-26 46 views
0

我正在制作一个Web应用程序。在其中的一部分,我有JS发送一个JSON字符串到PHP。字符串的conent是:在PHP中使用 - >获取空白而不是值

{"date":"24-03-2014","Cars":["Cheap","Expensive"]} 

我想将字符串转换为对象,为此,我做:

$meta = $_POST["meta"]; 
$obj = json_decode($meta); 
echo $obj->date; 

总之,而不必24-03-2014作为输出的,我得到作为输出的空白行。

怎么了?这样做的正确方法是什么?

+1

它运行良好,请检查$ _POST数据是否按照您指定的正确格式。 –

+1

第一步:[启用错误报告](http://stackoverflow.com/a/6575502/1438393) –

+0

错误报告是? '$ meta'包含什么? '$ obj'包含什么? – steven

回答

0

不能重新产生它:

$jsonStr = '{"date":"24-03-2014","Cars":["Cheap","Expensive"]}'; 
$jsonObj = json_decode($jsonStr); 

var_dump($jsonObj); 
var_dump($jsonObj->date); 

输出:

object(stdClass)[1] 
    public 'date' => string '24-03-2014' (length=10) 
    public 'Cars' => 
    array (size=2) 
     0 => string 'Cheap' (length=5) 
     1 => string 'Expensive' (length=9) 

string '24-03-2014' (length=10) 

你确定你的$_POST['meta']设置&已值?

+3

这应该是一个(更短)的评论。 – superphonic

0

下面的作品就像一个魅力。你的$ _POST [“date”]内部没有正确的值。尝试var_dump($ _ POST)来调试它。

<?php 
    $input = '{"date":"24-03-2014","Cars":["Cheap","Expensive"]}'; 
    $meta = $input; 
    $obj = json_decode($meta); 
    var_dump($obj->date); //Prints string(10) "24-03-2014" 
?> 
+2

再次,应该是一个评论。 – superphonic