如何将哈希的perl数组编码为未命名的JSON数组?

Van*_*ron 2 arrays perl hash json

我有一个哈希数组,我想将其转换为一个未命名的JSON数组。

如果我有一个哈希数组,然后尝试将其编码为JSON:

my @labs = ();  
push (@labs, {id=>'1', title=>'Lab1'});  
push (@labs, {id=>'2', title=>'Lab2'});  
my $json_text = to_json {\@labs}, {ascii=>1, pretty => 1};  
Run Code Online (Sandbox Code Playgroud)

然后生成的JSON如下所示:

{
   "ARRAY(0x358a18)" : null
}
Run Code Online (Sandbox Code Playgroud)

实际上,我希望它看起来像:

[  
   {"title" : "Lab1", "id" : "1"},  
   {"title" : "Lab2", "id" : "2"}  
]  
Run Code Online (Sandbox Code Playgroud)

Aln*_*tak 7

从周围删除花括号\@labs-他们将创建的数组转换为匿名哈希,然后再传递给to_json

#!/usr/bin/perl -w
use JSON -support_by_pp;
use strict;
my @labs = ();  
push (@labs, {id=>'1', title=>'Lab1'});  
push (@labs, {id=>'2', title=>'Lab2'});  
my $json_text = to_json \@labs, {ascii=>1, pretty => 1}; 
print $json_text;
Run Code Online (Sandbox Code Playgroud)

输出:

[
   {
      "title" : "Lab1",
      "id" : "1"
   },
   {
      "title" : "Lab2",
      "id" : "2"
   }
]
Run Code Online (Sandbox Code Playgroud)