PHP8.3 json_validate 存在bug

muvtou

问题描述

json_validate 在验证数字字符串时候返回true

 var_dump(json_validate('12345677878'));

bool(true)

---------------理解有误-------------------------
12345677878 是一个 合格json,允许正常解析,所以不存在bug,并不是所有的json值都必须大括号包起来

742 7 0
7个回答

释永战

学习了····

  • 暂无评论
Tinywan

在JSON(JavaScript Object Notation)标准中,数字是基本数据类型之一,可以单独存在,不需要被大括号{}包围。JSON格式主要用于数据交换,它允许以文本形式表示数据结构,如对象(键值对集合)和数组。

12345677878 作为一个数字,是有效的JSON值,可以被JSON解析器正确解析。然而,如果你想要表示一个对象,并且对象中包含这个数字作为某个键的值,那么它需要被包含在大括号内,例如:

{
  "number": 12345677878
}

在这个例子中,12345677878 被用作键number的值,整个结构是一个JSON对象。JSON格式要求对象以大括号开始和结束,键和值之间用冒号分隔,不同的键值对之间用逗号分隔。如果只是数字本身,它不需要任何额外的符号。

  • 暂无评论
xianrenqh

学习了····

  • 暂无评论
artisan

学习了

  • 暂无评论
ab0029

你还可以去试试这个
json_encode(1), json_encode(0), json_encode('1'), json_encode('0'), json_encode(true), json_encode(false), json_encode(null)
基础类型本身是可以的
JSON 值必须是对象、数组、数字或字符串,或者是 "false"、"null" 或 "true" 中的一个。

dbyellow

學習了

  • 暂无评论
ak47f16200

学习了。。

  • 暂无评论
×
🔝