3

perl version 5.18

perl JSON エンコーダーに問題があり、フロートを引用符で囲んでいます。

サンプルコードを参照してください:

use JSON;
use Data::Dumper;

my $float = 1.2;

my $t = {
  float => $float
};  

my $json1 = encode_json($t);
print Dumper $t;
my $json2 = encode_json($t);
print $json1 . "\n";
print $json2 . "\n";

出力:

$VAR1 = {
          'float' => '1.2',
          'integer' => 1
        };
{"float":1.2,"integer":1}
{"float":"1.2","integer":1}

Dumper を使用した後にわかるように、JSON エンコーダーは引用符を追加します。なぜこれが起こるのでしょうか?

上記のサンプル コードにはありませんが、本番環境では、.01 を追加しないと引用符を削除できません。*= *1 でも機能しません。

4

1 に答える 1