这是我的程序:
use strict;
use warnings;
use feature qw(say);
use JSON;
my @array;
for my $number ( (1..5) ) {
push @array, $number;
}
say to_json( {"number_array" => \@array} );
这是我的结果:
{"number_array":[1,2,3,4,5]}
这就是你想要的,对吧?
让我们将我的push
从push @array , $number;
更改为push @array "$number";
,其中$number
被引号括起来,就像它是一个字符串一样:
use strict;
use warnings;
use feature qw(say);
use JSON;
my @array;
for my $number ( (1..5) ) {
push @array, "$number";
}
say to_json( {"number_array" => \@array} );
现在我得到:
{"number_array":["1","2","3","4","5"]}
一些奇妙的事情,JSON 能够检测到这些“数字”被推送为字符串。让我再次循环,并向每个元素添加一个零:
use strict;
use warnings;
use feature qw(say);
use JSON;
my @array;
for my $number ( (1..5) ) {
push @array, "$number";
}
@array = map { $_ += 0 } @array;
say to_json( {"number_array" => \@array} );
返回:
{"number_array":[1,2,3,4,5]}
看起来你需要将数组中的每个元素加零,以将字符串转换回数字值。