vbker 2023-02-15 18:42 采纳率: 0%
浏览 45
已结题

如何使用php构造JAVA的包含数组元素的JSON对象

最近做开发,接口是JAVA,这边使用PHP对接,接口要求一个字段是JSON对象,JSON对象中的字段是数组,格式如下:

"result": {
    "JSON": {
        "ARRAY": [
            'a' => 'a'
        ]
    },
}

PHP中的数组结构

//数据数组
$result = [
    'JSON' => [
        'Array' => [
            'a' => 'a'
        ]
    ]
];

//执行json编码
$json = json_encode($result);
//输出 {"JSON":{"Array":{"a":"a"}}}


但是在PHP中JSON是字符串形式,Array字段也变成了JSON格式,请问怎么实现JAVA数据结构。
result需要使用json_encode()编码后执行sha256签名,我尝试手动构造这样的字符串,服务器返回验签失败。
请各位帮忙指点,谢谢!

  • 写回答

4条回答 默认 最新

  • Debug2048 2023-02-15 18:59
    关注

    要在PHP中创建这样的数据结构,可以先构建一个关联数组,然后使用json_encode()函数将其编码为JSON字符串

    $data = array(
        "result" => array(
            "JSON" => array(
                "ARRAY" => array()
            )
        )
    );
    
    $jsonString = json_encode($data);
    
    // 对 result 进行 SHA256 签名
    $signature = hash('sha256', $jsonString);
    
    
    

    首先创建一个名为 $data 的关联数组,其中包含 result 字段,该字段包含 JSON 字段,该字段又包含 ARRAY 字段。可以通过将这个数组传递给 json_encode() 函数来生成对应的 JSON 字符串。然后,使用 PHP 的 hash() 函数对这个字符串进行 SHA256 签名。

    在 PHP 中,json_encode() 函数会自动将关联数组转换为 JSON 对象,所以你不需要为这个特定的数据结构编写额外的代码。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月15日
  • 修改了问题 2月15日
  • 修改了问题 2月15日
  • 创建了问题 2月15日