当前位置: 首页 > 面试题库 >

PHP:file_get_contents('php:// input')返回JSON消息的字符串

洪华皓
2023-03-14
问题内容

我正在尝试在我的PHP应用程序中读取JSON消息,这是我的php代码

$json = file_get_contents('php://input');
$obj = json_decode($json, TRUE);
echo $obj->{'S3URL'};

当我这样做时,出现以下错误:

Trying to get property of non-object in setImage.php on line 25 (line 25 is the echo $obj->{'S3URL'}; line)

这是页面请求的请求主体:

Request Url: http://localhost:8888/setImage.php
Request Method: POST
Status Code: 200
Params: {
   "S3URL": "http://url.com"
}

这是请求标头:

Accept: application/json
Content-Type: application/json
Connection: keep-alive
Origin: chrome-extension: //rest-console-id
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML,

但是,如果我改为回显$json变量,则会得到以下结果:

S3URL=http%3A%2F%2Furl.com

因此,看起来file_get_contents('php://input');是以字符串形式而不是以JSON形式读取它,这会使解析起来更加困难。

知道为什么它不以JSON形式返回,或者如何使它以JSON形式返回吗?


问题答案:

您使用的json_decode是创建关联数组,而不是对象。您可以将其视为数组而不是对象。如果需要对象,请使用此对象:

$obj = json_decode($json);

请参阅有关第二个参数的文档json_decode()

assoc为TRUE时,返回的对象将转换为关联数组。

另外,正如Johannes H.在评论中指出的那样,输出echo $json;最初表明您实际上没有在接收JSON,因此您也需要解决该问题。您问为什么不是JSON?没有看到您如何请求此脚本,就无法确定地说。



 类似资料:
  • 我只想得到所有的消息数据。这样它就应该在父消息的花括号之间查找消息和所有数据。有了下面的代码,我也得到了服务细节以及我不想要的消息。对此专家的任何建议都要提前感谢。 我期待响应如下在我的字符串大小为2的数组列表。 好的。get(0)应该是 好的。get(1)应该是

  • 问题内容: 谁能告诉我如何从控制器返回字符串消息? 如果我只是从控制器方法返回一个字符串,那么spring mvc会将其视为jsp视图名称。 问题答案: 使用以下命令在控制器中注释方法: 来自:15.3.2.6将响应主体与注释映射: 该注释[…]可以放在一个方法,并且指示返回类型应当直接写入HTTP响应主体(而不是放置在一个模型,或解释为视图名称)。

  • 问题内容: 我正在使用接受json响应的jquery ajax调用: 在我的php后端函数中,我在一个简单的数组上使用json_encode,如下所示: 但是 alert(msg.hello) 为我返回 未定义 。这是怎么了?另外,在我的 console.log中, 我能够得到如下输出: 问题答案: 使用的返回数据:

  • 问题内容: 我正在开发一个使用JSON进行服务器通信的Android应用,当我尝试解析json文件时遇到了一个奇怪的问题。 这是我来自服务器的json 我通过调用地址Json-object 获得City的价值。对于这种情况,我期望为空(这是optString的意思吗?),但实际上它包含字符串“ null”。因此,进一步的null或isEmpty- checks将返回false,因为String包含

  • 我试图使用Apache和MySQL XAMPP数据库为我的论坛建立一个登录页面,但它多次返回回显字符串,我知道它会遍历数据库中的所有行,检查是否为真,它返回的是“无效的用户名或密码!”直到找到正确的登录信息,然后返回“welcome”(欢迎)。 它是如何做到的,它只返回一个不正确的和正确的字符串?。

  • 我正在开发一个使用JSON进行服务器通信的Android应用程序,当我试图解析我的json文件时,我遇到了一个奇怪的问题。 这是来自服务器的json 我通过调用字符串City=address来获取City的值。我的地址Json对象上的optString(“city”,“”)。对于这种情况,我希望城市是空的(这就是optString在这里的目的,不是吗?)但实际上它包含字符串“null”。因此,进一