提问:
最近做开发,接口是JAVA,这边使用PHP对接,接口要求一个字段是JSON对象,JSON对象中的字段是数组,格式如下:
"result": { "JSON": { "ARRAY": [] }, }
但是在PHP中JSON是字符串形式,请问怎么实现这种数据结构。
result需要使用json_encode()编码后执行sha256签名,我尝试手动构造这样的字符串,服务器返回验签失败。
解答:
在PHP中创建一个关联数组来表示该JSON对象,然后将其转换为JSON字符串,最后将其放入另一个关联数组中,以便进行签名。
以下是一个代码:
$data = array( 'result' => array( 'JSON' => array( 'ARRAY' => array() ) ) ); $jsonString = json_encode($data); // 对 $jsonString 执行 sha256 签名 $signature = hash('sha256', $jsonString); // 将签名结果添加到关联数组中 $data['signature'] = $signature; // 将最终的数据转换为 JSON 字符串 $finalJson = json_encode($data);
使用该方法创建的JSON字符串应该与你手动构造的字符串相同。如果你的签名失败,请检查你的JSON字符串是否与API文档中指定的格式完全一致。
标签:JAVA,JSON,签名,数组,字符串,array,php,data From: https://www.cnblogs.com/dituirenwu/p/17124330.html