使用Perl解析JSON出现问题

4
我有一个JSON文件,现在我想用Perl解析它。目前我的代码是这样的:
use strict;
use warnings;
use JSON;

open my $fh, "/Users/arjunnayini/Desktop/map_data.json";   


my @decoded_json = @{decode_json($fh)};

但是我遇到了一个错误,提示我的JSON字符串格式不正确,既不是数组、对象、数字、字符串也不是原子,在字符偏移0处(在“GLOB(0x100804ed0)”之前)。

我相当确定JSON文件格式正确,所以我不确定出了什么问题。有什么建议吗?

1个回答

15
假设您对JSON的调用是正确的,您需要先将文件读入:
#!/usr/bin/perl

use strict;
use warnings;
use JSON;

my $json;
{
  local $/; #enable slurp
  open my $fh, "<", "/Users/arjunnayini/Desktop/map_data.json";
  $json = <$fh>;
} 

my @decoded_json = @{decode_json($json)};

本地 @ARGV = "/Users/arjunnayini/Desktop/map_data.json"; $json = <>; - tadmc
是的,有其他方法可以先读入文件。我的示例展示了一种常见的习惯用法。 - Joel Berger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接