使用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”} (不带方括号) 谢谢。
答案 0 :(得分:6)
首先你创建一个数组,并希望它看起来不像数组?可能不是创造它?没有数组=没有问题。
$attribute{'Color'} = 'Green';
但如果你真的需要这样做,你可以使用map:
%attribute = map {
$_, @{$attribute{$_}} == 1 ? $attribute{$_}[0] : $attribute{$_}
} keys %attribute;