将键值JSON转换为对象并直接引用单个值


Convert key-value JSON to object and refer individual values directly

我正在制作一个web应用程序。在它的一部分,我有JS发送一个字符串(json格式)到PHP。

php接收到的值是:

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

现在,它被保存在一个变量$meta中。我面临的问题是,如何将这个字符串转换为对象并分别引用每个单独的条目。

我试过json_decodejson_encode

,然后我引用了每个变量使用$meta.["date"]$meta.date,但没有接缝工作。我得到的只是{作为输出。

正确的做法是什么?

$str = '{"date":"24-03-2014","Cars":["Cheap","Expensive"]}';
$obj = json_decode($str);
echo $obj->date;
// 24-03-2014

通常$my_obj = json_decode($_POST['jsonstring'], 1);(真正的供应意味着它将作为关联数组返回)应该是走的路。如果我是你,我可能会尝试var_dump($my_obj);,看看到底是什么。如果它不工作,你需要确保你正确地提交一个有效的json字符串,例如JSON.stringify();

您应该查看json_decode的PHP文档页面。

默认情况下,除非您将true作为json_decode的第二个参数传递,否则函数调用将返回一个对象,您可以使用

访问该对象的成员:
$meta->date

箭头操作符将允许您访问对象值,而不是方括号或点。