Perl: 如何使用JSON :: PP对一个复杂结构进行排序?perl:如何对“根”键属性以外的东西对JSON结构进行排序
从JSON文件:
正如 JSON :: PP范围排序例程运行,给定的子程序 名和特殊变量$ A,$ B 将开始“JSON :: PP ::”。
这里是我的尝试,似乎不工作
open my $fh, ">", $file or warn " exportAsJSON: can't open file: '$file': $!";
print $fh $coder->sort_by(sub {$_->{column_def}->{$JSON::PP::a} cmp $_->{column_def}->{$JSON::PP::b} })->encode(\%json);
close $fh;
我想通过键进行排序,然后在下面的“COLUMN_DEF”的属性键COLUMN_DEF属性,即 密度,depth_in_m,mag_sus :
{
"column_def":
{
"depth_in_m":
{
"names":"depth_in_m",
"pos":"0"
},
"mag_sus":
{
"names":
{
"A_ALIAS":"Mag-Sus.",
"A_DESC":"magnetic susceptibility in SI",
"ATTRIBUTE":"MAG_SUS"
},
"pos":"2"
},
"density":
{
"names":
{
"A_ALIAS":"Density",
"A_DESC":"density in gm\/cc",
"ATTRIBUTE":"DENSITY"
},
"pos":"1"
}
},
"data":
{
"depth_in_m":"14.635",
"mag_sus":"n.a.",
"density":"n.a."
}
}
我很想知道为什么你要排序的东西,将解析为散列 - 这没有固有的顺序。 – 2010-08-20 15:01:56
@熊会吃掉你:事实上,内存中的表示没有固有的顺序。我想将排序后的散列结构保存到一个文件(或临时文件)中,进行差异化和目视检查(以及之后的更复杂的事情)。 – knb 2010-08-23 10:02:03