我在 Node.js 中向 php 服务器发送 POST 请求。在请求中,我将 json 作为对象而不是字符串包含在内。Node.js 请求:var request = require('request');let data = { "name":"John", "age":30, "car":null };request.post({ headers: {'content-type' : 'application/json; charset=utf-8'}, url: 'http://0.0.0.0:9000/html.php', method: 'POST', json: data}, function(error, response, body){ console.log(body);});html.php:<?php# Get JSON as an object$json = file_get_contents('php://input');$name = $json->name;echo $json // Prints out the whole json correctlyecho $name; // Prints out "undefined"我希望输出是“John”而不是“undefined”
2 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
$data = json_decode($json,true);
echo $data['name'];
这对你有用。
该true参数会将 json 转换为数组。如果您不使用它,那么它会将其转换为一个对象,这意味着您可以使用->
类似于:
$data = json_decode($json);
echo $data->name;
这是true在json_decode函数中用作第二个参数的区别。我认为你在那里混了一点,这就是为什么它对你不起作用。
桃花长相依
TA贡献1860条经验 获得超8个赞
当您获得 JSON 时,它会以字符串的形式出现(正如您用 证明的那样echo $json)。要使其成为一个对象,您必须对其进行解码:
# Get JSON as an object
$json = file_get_contents('php://input');
$jsonObject = json_decode($json);
$name = $jsonObject->name;
echo $json // Prints out a string
echo $name;
- 2 回答
- 0 关注
- 156 浏览
添加回答
举报
0/150
提交
取消