【问题标题】:How can I access a JSON payload in Slim framework?如何在 Slim 框架中访问 JSON 有效负载?
【发布时间】:2014-12-17 16:14:16
【问题描述】:

我正在使用 Slim 框架和 PHP 开发一个 RESTful Web 服务。目前我已经能够发送一个 JSON 有效负载发布请求,(我也将其解析为响应......只是为了测试)。解码后如何访问 JSON 负载的值?

 public static function processAuth(){
    $request = \Slim\Slim::getInstance()->request();
    $body = $request->getBody();
    $user = json_decode($body);


    echo json_encode($user);
}

【问题讨论】:

  • 执行 var_dump($user) 以查看内容。
  • 我使用了 var_dump() 并返回了它的内容....我的问题是如何访问每个值并将其分配给字符串变量。谢谢
  • 取决于 $user 的内容。例如 $foo = $user["foo"]。 php.net/manual/en/language.variables.php
  • @MikaTuupola,我试过但没用

标签: php json web-services rest slim


【解决方案1】:

默认情况下json_decode() 返回一个对象。 您需要使用第二个参数打开要返回的关联返回。

$user = json_decode($body, 1);
print_r($user);

【讨论】:

  • 这确实是OP建议的问题的正确答案。此外,值得一提的是,对于json_decode返回的stdClass对象,您始终可以使用以下语法访问其属性:$user->foo。
【解决方案2】:

我认为在这种情况下 $user 将是一个关联数组,因此要访问已解码 json 的变量值,您必须像这样调用它:$user['variableName']。

希望对你有帮助

【讨论】:

  • 你能发布 var_dump($user) 和 echo json_encode($user) 时出现的内容吗?这样我就可以看看了。
猜你喜欢
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 2017-05-12
  • 1970-01-01
  • 2020-12-04
  • 2019-11-09
相关资源
最近更新 更多