Perl JSON编码从单个密钥创建json数组

时间:2013-10-14 11:49:27

标签: json perl

使用Perl编码要由Java程序使用的哈希。 JSON编码将单个键转换为JSON数组元素。

my %attribute;
push (@{$attribute {"Color"}},'Green');
push (@{$attribute {"Model"}}, ('Model_1','Model_2'));
print Dumper(\%attribute);
my $json_attr = JSON->new->utf8->encode(\%attribute);
print $json_attr;

输出:

$VAR1 = {
    'Model' => [
        'Model_1',
        'Model_2'
        ],
    'Color' => [
        'Green'
        ]
};
{"Model":["Model_1","Model_2"],"Color":["Green"]}

我需要哈希中的单个键如下所示: {“Color”:“Green”} (不带方括号) 谢谢。

1 个答案:

答案 0 :(得分:6)

首先你创建一个数组,并希望它看起来不像数组?可能不是创造它?没有数组=没有问题。

$attribute{'Color'} = 'Green';

但如果你真的需要这样做,你可以使用map:

%attribute = map {
   $_, @{$attribute{$_}} == 1 ? $attribute{$_}[0] : $attribute{$_}
} keys %attribute;