1

次のようなデータを返す WEB サーバーから読み取ります。

{'status':{"t":1, "f":1, "p":2, "i":1}}

JSON::XS によって伝えられる、有効な JSON 形式のデータではないようです。どうすればそれを解析できますか?

4

3 に答える 3

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 モジュールのドキュメントを参照してください。

于 2013-04-02T14:53:55.883 に答える
3

JSON 形式の仕様は、こちらで確認できます。あなたの場合、問題は単一引用符で囲まれている可能性がありますstatus。代わりに通常の二重引用符を使用すると、次のように解析されます。

{"status":{"t":1, "f":1, "p":2, "i":1}}

JSON の有効性は、http://jsonlint.com/で確認できます。

于 2013-04-02T05:29:45.850 に答える