首页 > 编程语言 >PHP json_decode 关键词不被解析的处理方法

PHP json_decode 关键词不被解析的处理方法

时间:2023-06-12 14:11:44浏览次数:45  
标签:PHP false decode json null true

如果 JSON 数据中包含了 PHP 的关键字,如 true、false 或者 null,则 json_decode() 函数将无法成功解析该数据。

因此可以使用单独判断的方式

 $v = $v === true ? 'true' : $v;
        $v = $v === false ? 'false' : $v;
        $v = $v === null ? 'null' : $v;

sha256 demo

<?php

function sign($accessKey, $timestamp, $secretKey, $body)
{
    $obj_json = $body ? json_decode($body, true) : array();
    $obj_json['timestamp'] = $timestamp;
    $obj_json['accessKey'] = $accessKey;
    unset($obj_json['sign']);
    ksort($obj_json);
    array_walk($obj_json, function (&$v, $k) {
        $v = $v === true ? 'true' : $v;
        $v = $v === false ? 'false' : $v;
        $v = $v === null ? 'null' : $v;
        $v = is_array($v) ? ("$k=" . json_encode($v)) : "$k=$v";
    });
    $obj_str = implode("&", $obj_json) . $secretKey;
    var_dump($obj_str);
    return hash('sha256', $obj_str);
}


$accessKey = '11111111';
$secretKey = '22222222';
$body = "{\"deliveryWarehouse\":\"CESHI\",\"isSubmit\":false,\"planningNo\":\"20230612-test\",\"trackType\":\"101102\",\"bolNo\":\"123\",\"landCarrier\":\"fedex\",\"landEta\":\"2023-07-23\",\"details\":[{\"goodsNum\":10,\"goodsCode\":\"2020\"}]}";

$timestamp = '1682494538291';

$sign = sign($accessKey, $timestamp, $secretKey, $body);
echo $sign;

标签:PHP,false,decode,json,null,true
From: https://www.cnblogs.com/guanchaoguo/p/17474876.html

相关文章

  • php文件上传之白名单00截断实验
    %00截断介绍:0x00,%00,/00在url中%00表示ascll码中的0,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束。但是所谓的if拦截仍会读取后面的后缀达到绕过白名单的效果。当前版本环境:PHP版本低于5.4.24,或者PHP版本在5.5.8到5.6.0之间,且GPC......
  • 关于map/list集合 和 json串的相互转换
    JSON.parse(tempWhiteBoardTextBook);//将接收到的服务器字符串转为JavaScript对象;JSON.stringify(tempWhiteBoardTextBook);//将JavaScript对象或值转换为JSON字符串,一般是发送json数据到服务器; 1、使用此net.sf.json.JSONObject包将map/list集合或者json串转......
  • 大数据NiFi(十九):实时Json日志数据导入到Hive
    文章目录实时Json日志数据导入到Hive一、配置“TailFile”处理器1、创建“TailFile”处理器2、配置“PROPERTIES”二、配置“EvaluateJsonPath”处理器1、创建“EvaluateJsonPath”处理器2、配置“PROPERTIES”3、连接“TailFile”处理器和“EvaluateJsonPath”处理器三、配置“Rep......
  • Java常用的几种JSON解析工具
    一、Gson:Google开源的JSON解析库1.添加依赖<!--gson--><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId></dependency><!--lombok--><dependency><groupId>org.proje......
  • phptrace 是一个用于跟踪 PHP 应用程序性能的工具,可以帮助开发者快速发现性能瓶颈和调
    phptrace是一个用于跟踪PHP应用程序性能的工具,可以帮助开发者快速发现性能瓶颈和调试PHP应用程序。以下是一个使用phptrace的简单案例:1.安装phptrace可以通过以下命令安装phptrace:sudoapt-getinstallphp7.0-devgitclonehttps://github.com/Qihoo360/phptrace.......
  • python编码decode和encode
                文章来源:https://www.cnblogs.com/skyflask/p/7622991.html ......
  • [GPT] php 报错 Unsupported operand types
     Unsupportedoperandtypes这个错误通常发生在使用了不支持的操作数类型时。例如,当您尝试对两个不同类型的值执行算术运算时,就会出现这个错误。例如,如果您尝试将字符串与数字相加,则会出现此错误: $number=10;$string="20";$result=$number+$string;//Unsuppo......
  • 基于php的外卖订餐网站(php+mysql)
    介绍一个基于php的外卖订餐网站,包括前端和后台。效果演示http://101.43.124.118:8001/admin源码地址https://github.com/geeeeeeeek/dingfanzu代码说明htaccessRewrite配置文件,需要放入到项目根目录configs.php需要配置数据库连接信息(主机、用户名、密码),系统常量,debug......
  • 使用C#把Json转换成DataTable
    要将JSON转换为DataTable,你可以使用Newtonsoft.Json库(也称为Json.NET),它是一个流行的用于处理JSON数据的库。以下是使用C#和Newtonsoft.Json将JSON首先,确保你已经安装了Newtonsoft.Json库。你可以在VisualStudio中通过NuGet然后,使用以下代码将JSON转换为......
  • jmeter005:察看结果树之以(txt、css、html、json)格式查看结果
     txt:这里就不用说了,已txt文件展示,形式比较单一,但也是用的比较多的 css:css取样测试其实与txt也差不多,区别就是比txt多了“选择器”筛选 html:html有三种模式,(HTML以基本的界面形式展示数据)、(HTMLSourceFormatted会下载图像来展示)、(HTMLSourceformatted:如果选择了HTML......