在PHP

时间:2018-07-03 04:51:34

标签: php python json python-3.x post

我正在尝试让python客户端发送包含此类嵌套JSON的POST请求

{"nested":{"field1":"response1", "field2":"response2"}}

我的python代码在这里

from urllib.parse import urlencode
from urllib.request import Request, urlopen

url="http://localhost/api/vscore.php"
post_fields={"nested":{"field1":"response1", "field2":"response2"}}

request = Request(url, urlencode(post_fields).encode())
json = urlopen(request).read().decode()
print(json)

PHP代码:

print_r($_POST["nested"]);

返回

{'field2': 'response2', 'field1': 'response1'}

但是当我尝试使用$ _POST [“ nested”] [“ field1”]访问“ field1”时,它将返回以下内容:

{

而不是返回“ response1”。如何获取代码以返回嵌套JSON中的字段?

1 个答案:

答案 0 :(得分:1)

如果请求是json格式,则应先json_decode,然后再尝试访问。 nested键的访问方式为:

$nested = json_decode($_POST["nested"], true);
$field = $nested["field1"];