1

使用 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"}(不带方括号)谢谢。

4

1 回答 1

6

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

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

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

%attribute = map {
   $_, @{$attribute{$_}} == 1 ? $attribute{$_}[0] : $attribute{$_}
} keys %attribute;
于 2013-10-14T12:03:15.720 回答