我从WEB服务器上读到了这样的数据:
{'status':{"t":1, "f":1, "p":2, "i":1}}
JSON :: XS告诉它似乎不是有效的JSON格式数据。我该如何解析?
答案 0 :(得分:3)
您可以检查JSON格式here的规范。在您的情况下,问题可能是status
周围的单引号。如果您使用常规双引号,则应解析:
{"status":{"t":1, "f":1, "p":2, "i":1}}
检查JSON的有效性
答案 1 :(得分:3)
JSON::XS
似乎没有接受单引号的切换,但是JSON
确实如此。
use strict;
use warnings;
use JSON -support_by_pp
my $source = q( {'status':{"t":1, "f":1, "p":2, "i":1}} );
my $parsed = JSON->new->allow_singlequote->decode($source);
有关更多选项和详细信息,请参阅JSON module docs。
答案 2 :(得分:1)
这是有效的JavaScript。因此,如果您不想编写自己的解析器,请将其传递给JavaScript engine进行评估并转换为JSON。