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