PHP JSON编码后things字段类型错误导致API调用无效如何解决
问题根因
你构造的$data['things']是关联数组结构,PHP在执行json_encode时,关联数组会被自动转换为JSON对象格式;而API要求things是包含单个对象元素的索引数组,因此结构不匹配。
解决方法
只需要给原有things的配置项多套一层索引数组即可,修改后的代码如下:
$data['things'] = [ // 多套一层方括号,把关联数组作为索引数组的第一个元素 [ 'awdad' => 'awd', '234' => '234234', '234234234' => [ 'name'=>'Jon', ], 'wadadw' => [ '234234234'=>'awdawd', ], ] ];
验证说明
执行json_encode($data, JSON_PRETTY_PRINT)后输出的结构就会和API要求的完全一致,things字段会是数组类型包裹对象的格式。如果场景中可能出现things为空的情况,只要保持things为PHP索引数组类型,编码后就会自动输出[]格式,无需额外参数。
内容的提问来源于stack exchange,提问作者Covert Error
相关产品推荐
相关产品推荐

