【问题标题】:Need example of Perl JSON usage需要 Perl JSON 使用示例
【发布时间】:2011-11-08 22:47:49
【问题描述】:

如何在 Perl 中解析 JSON 字符串?

注意:我是 C++/Java/C# 软件工程师,而不是使用 Perl 的脚本编写者。

我已经完整阅读了JSON.pm“文档”以找到一个可行的示例,但这些文档被证明是完整的,完全是垃圾”。

我也读过这个post,但似乎没有人知道如何从解码的 perl 变量中获取 JSON 键值对。

这是我的脚本。有人可以帮忙吗?

use JSON;

my $json_string = '{"foo": "bar"}';
my $decoded_json = decode_json($json_text);
print $decoded_json["foo"];

std::map<string, string> mymap = convert_to_cplusplus(decoded_json); # doesn't work
my asfjsa;fjsa;fwe # doesn't work

我在快结束时感到沮丧。

【问题讨论】:

  • 致反对者:没有必要反对这个问题...... OP 只是有点沮丧,在这种情况下,我实际上可以理解。该文档是为一位经验丰富的 Perl 程序员编写的,因此如果您不是这样的人,那将是相当令人生畏的。
  • @Chris:也许这与一般语气有关。 C++ 对我来说很神奇,但是当它是为经验丰富的 C++ 程序员编写的时,我不保证将 C++ lib 的文档称为垃圾文档。 (虽然我没有投反对票。)
  • 哼。 Perl 程序员不能成为软件工程师意味着什么?我也没有投反对票,但我也不太想提供帮助。
  • 我不认为你必须是一个经验丰富的 Perl 程序员才能理解这些文档。与其他文档一样,假定您了解 Perl 数据结构。无论您使用哪种语言,这都是最低要求之一。
  • -1 表示音调。将问题改为情绪中性的措辞,并证实您的观点为什么某事是垃圾。

标签: json perl


【解决方案1】:

您需要使用$decoded_json-&gt;{"foo"}---注意大括号,而不是方括号。另请注意箭头-&gt;---decode_json 返回一个引用。

我很乐意承认,这种情况下的文档对于不了解 Perl 的人没有任何帮助,例如了解$perl_hash_or_arrayref 的含义。 (经验丰富的 Perl 程序员立即知道这意味着您必须使用 -&gt;。)

【讨论】:

  • 你打败了我。我还想发布一个指向 perlref 页面的链接:perldoc.perl.org/perlref.html
  • @Igor:+1 好主意,尽管我认为 perlreftut 可能是一个更好的主意。我认为 perlref 会超越可怜的 OP 的头脑。 :-(
  • @Chris - 经验丰富的 程序员不需要了解如何取消引用哈希。只是一个有点能干的人
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
  • 1970-01-01
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
  • 2014-11-16
相关资源
最近更新 更多