如何解析Perl中的JSON字符串?
注意:我是C ++ / Java / C#软件工程师,而不是Perl-wielding脚本编写者。
我已经完全阅读了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
我在接近结束时感到沮丧。
答案 0 :(得分:13)
您需要使用$decoded_json->{"foo"}
---请注意大括号,而不是方括号。另请注意,箭头->
--- decode_json
会返回参考。
我很乐意承认,本案例中的文档对于那些还不了解Perl的人来说没有帮助,例如,知道$perl_hash_or_arrayref
的含义。 (经验丰富的Perl程序员立即知道这意味着你必须使用->
。)