php报错Inf and NaN cannot be JSON encoded怎么处理

在 PHP 中,如果尝试将 Inf**(正无穷大)** 和 NaN**(不是数字)**这样的特殊值直接用json_encode转换为 JSON 格式,就会出现报错 "Inf and NaN cannot be JSON encoded"。要处理这个问题,可以采取以下方法之一:

1、转换为有效的 JSON 值:将 Inf 和 NaN 替换为 JSON 支持的有效值

例如,将 Inf 替换为一个很大的数值(例如 999999999),将 NaN 替换为 null 或者字符串 "NaN"。

示例代码:

php 复制代码
$value = INF; // Inf or NaN value
// Convert Inf and NaN to valid JSON values
if (is_infinite($value)) {
    $value = 99999999; // Replace Inf with a large number
} elseif (is_nan($value)) {
    $value = 'NaN'; // Replace NaN with string "NaN"
}
$jsonData = json_encode($value);
echo $jsonData;

2、在json_encode函数中使用 JSON_PARTIAL_OUTPUT_ON_ERROR 选项

在 PHP 7.1 及更高版本中,可以通过设置 JSON_PARTIAL_OUTPUT_ON_ERROR 选项来避免报错,并将 Inf 和 NaN 编码为 null。

示例代码:

php 复制代码
$value = INF; // Inf or NaN value
$jsonData = json_encode($value, JSON_PARTIAL_OUTPUT_ON_ERROR);
echo $jsonData;
相关推荐
筱白爱学习10 小时前
RestHighLevelClient详细使用手册
linux·服务器·php
liann11912 小时前
4.3.2_WEB——WEB后端语言——PHP
开发语言·前端·网络·安全·web安全·网络安全·php
杨超越luckly19 小时前
HTML应用指南:利用GET请求获取中国邮政网点位置信息
前端·python·arcgis·html·php·数据可视化
ShoreKiten20 小时前
Upload-labs 高版本php环境非完全攻略
开发语言·php
~央千澈~20 小时前
抖音弹幕游戏开发之第6集:解析JSON数据·优雅草云桧·卓伊凡
开发语言·python·php
虹科网络安全21 小时前
【Redis实用技巧#12】如何向 Redis 批量写入海量数据?
数据库·redis·php
linux_cfan21 小时前
WordPress 视频播放痛点解决方案:支持 RTSP/WebRTC 与字幕检索的 ZWPlayer 插件实测
php·音视频·webrtc
~央千澈~21 小时前
抖音弹幕游戏开发之第4集:第一个WebSocket连接·优雅草云桧·卓伊凡
开发语言·python·php
WHS-_-202221 小时前
Sensing in Bistatic ISAC Systems With Clock Asynchronism
开发语言·php
中科三方1 天前
域名注册后无法解析解决方法:技术故障排查和解决指南
开发语言·github·php