一尘不染

为什么JSON模块引用一些数字而不引用其他数字?

json

我们最近切换到了新的JSON2
perl模块。我以为一切都归还了。但是我遇到了一些情况,其中250perl创建的json字符串中的数字()作为未引用的数字返回。

出于好奇: 是否有人知道为什么存在这种情况以及json模块如何决定是否引用值?


阅读 173

收藏
2020-07-27

共1个答案

一尘不染

您可以通过执行以下操作将其强制为字符串:

$number_str = '' . $number;

例如:

perl -MJSON -le 'print encode_json({foo=>123, bar=>"".123})'
{"bar":"123","foo":123}

看起来旧版本的JSON具有可以设置的自动转换功能。您没有$JSON::AUTOCONVERT设置为真值吗?

2020-07-27