在Perl中解码JSON

时间:2014-09-26 10:46:38

标签: json perl decoding

我有一个像这样的JSON文件(它是整个JSON文件的一部分):

{
  id => "mgp1310",
  samples => [
    {
      envPackage => {
        data => {
          diss_carb_dioxide => {
            aliases    => ["sediment_diss_carb_dioxide"],
            definition => "concentration of dissolved carbon dioxide",
            mixs       => 1,
            required   => 0,
            type       => "text",
            unit       => "",
            value      => "17 mM",
          },
        },
        id => "mge64559",
      },
    },
  ],
}

这已由模块JSON解码,使用:

use Data::Dumper;
use JSON;

open($fh, '<', 'hola.txt' );
$json_text   = <$fh>;
$perl = decode_json($json_text);
print Dumper($perl);  

现在我知道$perl有一个哈希值。所以我想使用id打印JSON文件的print $perl{"id"};。然而,它打印出任何我不知道的原因。

1 个答案:

答案 0 :(得分:5)

我通过在代码中添加use strict找到了答案。它引发了以下错误:

Global symbol "%perl" requires explicit package name at json.pl line 12.

变量$perl是标量,而不是哈希!当然......我没有想过这个。所以我无法访问哈希写$perl{"id"}。正确的方法是$perl->{id}