PHP:解析包含嵌套JSON对象的POST请求

PHP:解析包含嵌套JSON对象的POST请求,php,json,parsing,post,nested,Php,Json,Parsing,Post,Nested,使用PHP,我试图解析一个包含嵌套JSON对象的POST请求,但却一无所获。我可以访问所有顶级键/值,但无法访问嵌套键/值。为了解决这个问题,我一直在接受单级对象,并让用户向API传递一个JSON字符串,用于包含任何嵌套值的请求,但我希望允许用户只需按照他们应该的方式将JSON查询发布到API 这里是有问题的JSON查询: (用Python发送) 数据={ “apiKey”:“12345678910”, “工具类型”:“测试工具”, “查询”:{ “argType”:“foo”, “arg”:[

使用PHP,我试图解析一个包含嵌套JSON对象的POST请求,但却一无所获。我可以访问所有顶级键/值,但无法访问嵌套键/值。为了解决这个问题,我一直在接受单级对象,并让用户向API传递一个JSON字符串,用于包含任何嵌套值的请求,但我希望允许用户只需按照他们应该的方式将JSON查询发布到API

这里是有问题的JSON查询:

(用Python发送)

数据={
“apiKey”:“12345678910”,
“工具类型”:“测试工具”,
“查询”:{
“argType”:“foo”,
“arg”:[
“做”,
“re”,
“米”
]
},
planInfo:“0”
}
r=员额(
"https://api.example.io/",
数据=数据
)
收到POST请求后, 我想访问
$query
的嵌套对象,但是我被字符串值“arg”卡住了

到目前为止,我已经尝试了两件事:

[1]
echo文件获取内容(“php://input“”
,它只返回:

apiKey=12345678910&toolType=testTool&query=argType&query=arg&planInfo=0

正如您所看到的,
$query
未被解析,这是可以理解的,因为这是一个字符串查询,我假设使用此方法无法序列化嵌套对象

[2]
var\u dump($\u请求)
这给了我一个类似的查询评估:

数组(4){
[“apiKey”]=>
字符串(11)“12345678910”
[“工具类型”]=>
字符串(8)“测试工具”
[“查询”]=>
字符串(3)“arg”
[“计划信息”]=>
字符串(1)“0”
}
我假设
$\u REQUEST
也只是一个字符串查询,甚至可能是
php://input

结论:

在这一点上,我的总体问题是,使用PHP,甚至可以在POST请求的接收端解析JSON中的嵌套对象吗?如果可以,我缺少什么


非常感谢您的反馈。

您应该让python将数据发布为
application/json
。现在,它将数据发布为
application/x-www-form-urlencoded
感谢您的反馈。我尝试将
'Content-type':'application/json'
添加到帖子标题中,但没有成功。恐怕与前面的结果相同:/您不需要处理标题,只需使用
post(“https://api.example.io/“,json=data)
哇,是的,就是这样!我忽略了请求本身<代码>php://input在我可以解码的地方正常工作,等等,谢谢@Phil!您应该让python将数据发布为
application/json
。现在,它将数据发布为
application/x-www-form-urlencoded
感谢您的反馈。我尝试将
'Content-type':'application/json'
添加到帖子标题中,但没有成功。恐怕与前面的结果相同:/您不需要处理标题,只需使用
post(“https://api.example.io/“,json=data)
哇,是的,就是这样!我忽略了请求本身<代码>php://input在我可以解码的地方正常工作,等等,谢谢@Phil!