验证来自 JSON 的数据具有 Boolean(true,false) 而不是 ("true","false")。而字符串(“12345”)不是(12345)
Validate data from JSON having Boolean(true,false) not ("true","false"). And string ("12345") not (12345)
需要验证数据表单 JSON 文件。
示例 JSON:
预计
{
id => "12345",
flag=> true
}
如果文件有如下数据,我需要抛出错误
{
id => 12345,
flag=> "true"
}
我发现这个 link 用于验证字符串 here
但如果有任何其他解决方案,这将对我有所帮助。
TIA
$val
是一个字符串吗?
链接的答案不会帮助您区分 "12345"
和 12345
。要检查一个值是否存储为字符串,您可以使用
use B qw( svref_2object SVf_POK );
svref_2object($val)->FLAGS & SVf_POK
or die("Not a string\n");
这应该适用于您的 JSON 解析器的值,但如果您期望双变量、具有重载的对象或神奇的标量,它就不会工作。
$val
是布尔值吗?
最流行的 JSON 解析器使用特殊对象来表示 JSON 中的 true
和 false
。
有了Cpanel::JSON::XS,就可以用
Cpanel::JSON::XS::is_bool($val)
or die("Not a boolean\n");
JSON::XS 和 JSON::PP 也提供了一些检查方法。
需要验证数据表单 JSON 文件。 示例 JSON: 预计
{
id => "12345",
flag=> true
}
如果文件有如下数据,我需要抛出错误
{
id => 12345,
flag=> "true"
}
我发现这个 link 用于验证字符串 here
但如果有任何其他解决方案,这将对我有所帮助。 TIA
$val
是一个字符串吗?
链接的答案不会帮助您区分 "12345"
和 12345
。要检查一个值是否存储为字符串,您可以使用
use B qw( svref_2object SVf_POK );
svref_2object($val)->FLAGS & SVf_POK
or die("Not a string\n");
这应该适用于您的 JSON 解析器的值,但如果您期望双变量、具有重载的对象或神奇的标量,它就不会工作。
$val
是布尔值吗?
最流行的 JSON 解析器使用特殊对象来表示 JSON 中的 true
和 false
。
有了Cpanel::JSON::XS,就可以用
Cpanel::JSON::XS::is_bool($val)
or die("Not a boolean\n");
JSON::XS 和 JSON::PP 也提供了一些检查方法。