1

我想通过一个 JSON:{"name":"jason","age":"20}在 PHP 虽然POST

在 RoR 中,我可以使用params["name"]&获得这两个值params["age"]

但我不知道如何在 PHP 中获取它们。

我知道我可以通过使用将 JSON 字符串“翻译”为关联数组,json_decode但我不知道如何获取 JSON 字符串。

在我的PHP 代码中,我尝试过这样的事情:

<?php
    $json_string = $_POST['params'];

    $json_object= json_decode($json_string);
    print_r($json_object);

    echo $json_object->name;
    echo " ";
    echo $json_object->age;
?>

然后我用终端测试了PHP,我得到了正确的结果

curl -d 'params={"name":"jason", "age":"20"}' xxxx/test_json_decode.php

它有效,但对我来说似乎很奇怪,因为我没有设置'Content-Type: application/json'

它是在 PHP 中解析 JSON 的正确方法吗?

4

1 回答 1

2

content-type 仅在某些情况下有用,例如 jquery 执行标准 .post ,您没有明确告诉它期待 json 响应。json 字符串只是文本,内容类型只是接收者的线索。但是您仍然可以发送带有 image/jpeg 的 json 字符串,并且仍然可以对其进行解码并再次获得本机结构。

只要你传递给 json_decode() 的是一个有效的 JSON 字符串,不管它是用什么 mime 类型发送的,它都会被解码成一个原生结构。

于 2012-11-07T18:52:06.263 回答