나는 이런 식으로 나에게 데이터를 반환하는 웹 서버에서 읽어 : 그것은 JSON :: XS에 의해 말 유효한 JSON 형식의 데이터를하지 보인다Perl에서 JSON 변수를 구문 분석하는 방법은 무엇입니까?
{'status':{"t":1, "f":1, "p":2, "i":1}}
. 어떻게 해석 할 수 있습니까?
나는 이런 식으로 나에게 데이터를 반환하는 웹 서버에서 읽어 : 그것은 JSON :: XS에 의해 말 유효한 JSON 형식의 데이터를하지 보인다Perl에서 JSON 변수를 구문 분석하는 방법은 무엇입니까?
{'status':{"t":1, "f":1, "p":2, "i":1}}
. 어떻게 해석 할 수 있습니까?
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을 참조하십시오.
JSON 형식 here의 사양을 확인할 수 있습니다. 귀하의 경우 문제는 작은 따옴표 status
일 가능성이 큽니다. 대신 일반 따옴표를 사용하는 경우 구문 분석해야합니다
{"status":{"t":1, "f":1, "p":2, "i":1}}
사실, 나는 'status':,''sth ': { "sth": "as \"로 혼합 된 매우 큰 데이터 (8KB 크기의 단일 라인) df "....". 나는/s/'/ "/ g'이 효과가 있을지 확신하지 못합니다. – nfpyfzyf
아니요, 작동하지 않습니다. 그러나 방화범이 잘 퍼스를 파싱합니다. – nfpyfzyf
나는 클라이언트 측에서 regexp를 대체하려고하지 않고 서버 측에서이 문제를 해결할 것을 제안합니다. 다른 사람들이이 서비스를 사용하는 경우 동일한 문제가 발생할 가능성이 있습니다. 그래서 소스에서 문제를 해결하십시오. – NilsH
그것은 유효한 자바 스크립트입니다 귀하의 JSON의 유효성을 확인하실 수 있습니다. 따라서 파서를 직접 작성하지 않으려면 JavaScript engine으로 전달하여 평가 및 JSON으로 변환하십시오.
웹 서비스에 버그를 신고하고 해결하도록하십시오? :) –