2016-10-20 1 views
1

Ruby On Rails의 API에서 json 응답을 얻으려고합니다. QT5.7 - QString을 사용하여 잘못된 json 값을 얻지 만 std :: string과 완벽하게 일치하는 이유는 무엇입니까?

내가 또는 우편 배달부와 직접 url을 호출

나는 완벽한 JSON 응답을 얻을.

정적으로 컴파일 된 QT5.7 창에서 32 비트 프로그램을 사용할 때 std :: string을 사용하는 경우에만 완벽한 응답을 얻습니다.

, 나는 나는이 잘못하고 이상한 결과를 얻을 수) (인쇄에 대한 QString을 QDebug를 사용하는 경우 :

"{\"성공 \ ": 사실, \"파일 \ ": \ "C : /Perl/lib/pods/perlcn.pod \", \ "C : /Perl/lib/pods/perldata.pod \", \ "C : /Perl/lib/pods/perldebguts.pod \" \ "C : /Perl/lib/pods/perldelta.pod \", \ "C : /Perl/lib/pods/perldiag.pod \", \ "C : /Perl/lib/pods/perldoc.pod \" , \ "C : /Perl/lib/pods/perldos.pod \", \ "C : /Perl/lib/pods/perldsc.pod \", \ "C : /Perl/lib/pods/perldtrace.pod \ ", \"C : /Perl/lib/pods/perlebcdic.pod \ ", \"C : /Perl/lib/pods/perlembed.pod \ ", \"C : /Perl/lib/pods/perlexperiment.pod \ "C : /Perl/lib/pods/perlfaq.pod \", \ "C : /Perl/lib/pods/perlfaq1.pod \", \ "C :/Perl/lib/pods/perlfaq2. pod \ ", \"C :/C : /Perl/lib/pods/perlfaq4.pod \ ", \"C : /Perl/lib/pods/perlfaq5.pod \ ", \"C :/lib/pods/perlfaq3.pod \ /Perl/lib/pods/perlfaq6.pod\",\"C:/Perl/lib/pods/perlfaq7.pod\",\"C:/Perl/lib/pods/perlfaq8.pod\",\"C : /Perl/lib/pods/perlfaq9.pod \ ", \"C : /Perl/lib/pods/perlfilter.pod \ ", \"C : /Perl/lib/pods/perlfork.pod \ ", \" C : /Perl/lib/pods/perlform.pod \ ", \"C : /Perl/lib/pods/perlfreebsd.pod \ ", \"C : /Perl/lib/pods/perlfunc.pod \ ", \ "C : /Perl/lib/pods/perlgit.pod \", \ "C : 나는 표준 : : 문자열를 인쇄하면 펄/lib 디렉토리/포드 perlglossaîv

그래서, 나는 완벽을// json, 정확히 내가 원하는 것 :

{ "success": true, "files": [ "C :/Pe lib/pods/perlcn.pod ","C : /Perl/lib/pods/perldata.pod ","C : /Perl/lib/pods/perldebguts.pod ","C :/Perl/lib/pods " /perldelta.pod","C:/Perl/lib/pods/perldiag.pod","C:/Perl/lib/pods/perldoc.pod","C:/Perl/lib/pods/perldos.pod " , "C : /Perl/lib/pods/perldsc.pod", "C : /Perl/lib/pods/perldtrace.pod", "C : /Perl/lib/pods/perlebcdic.pod", "C :/Perl/lib/pods/perlembed.pod ","C : /Perl/lib/pods/perlexperiment.pod ","C : /Perl/lib/pods/perlfaq.pod ","C :/Perl/lib/pods /perlfaq1.pod","C:/Perl/lib/pods/perlfaq2.pod","C:/Perl/lib/pods/perlfaq3.pod","C:/Perl/lib/pods/perlfaq4.pod " , "C : /Perl/lib/pods/perlfaq5.pod", "C : /Perl/lib/pods/perlfaq6.pod", "C : /Perl/lib/pods/perlfaq7.pod", "C :/Perl/lib/pods/perlfaq8.pod ","C : /Perl/lib/pods/perlfaq9.pod ","C : /Perl/lib/pods/perlfilter.pod ","C :/Perl/lib/pods /perlfork.pod","C:/Perl/lib/pods/perlform.pod","C:/Perl/lib/pods/perlfreebsd.pod","C:/Perl/lib/pods/perlfunc.pod " , "C : /Perl/lib/pods/perlgit.pod", "C : /Perl/lib/pods/perlglossary.pod", "C : /Perl/lib/pods/perlgpl.pod", "C :/Perl/lib/pods/perlguts.pod ","C : /Perl/lib/pods/perlhack.pod ","C : /Perl/lib/pods/perlhacktips.pod ","C : /Perl/lib/pods/perlhacktut.pod ","C : /Perl/lib/pods/perlhaiku.pod","C:/Perl/lib/pods/perlhist.pod","C:/Perl/lib/pods/perlhpux.pod","C:/Perl/lib/ pods/perlhurd.pod ","C : /Perl/lib/pods/perlintern.pod ","C : /Perl/lib/pods/perlinterp.pod ","C : /Perl/lib/pods/perlintro.pod ","C : /Perl/lib/pods/perliol.pod ","C : /Perl/lib/pods/perlipc.pod ","C : /Perl/lib/pods/perlirix.pod ","C : /Perl/lib/pods/perljp.pod","C:/Perl/lib/pods/perlko.pod","C:/Perl/lib/pods/perllexwarn.pod"," C:/Perl/lib/ pods/perllinux.pod ","C : /Perl/lib/pods/perllocale.pod ","C : /Perl/lib/pods/perllol.pod ","C : /Perl/lib/pods/perlmacos.pod ","C : /Perl/lib/pods/perlmacosx.pod ","C : /Perl/lib/pods/perlmod.pod ","C : /Perl/lib/pods/perlmodinstall.pod ","C : /Perl/lib/pods/perlmodlib.pod","C:/Perl/lib/pods/perlmodstyle.pod","C:/Perl/lib/pods/perlmroapi.pod","C:/Perl/lib/ pods/perlnetware.pod ","C : /Perl/lib/pods/perlnewmod.pod ","C : /Perl/lib/pods/perlnumber.pod ","C : /Perl/lib/pods/perlobj.pod ","기음:/ Perl/lib/pods/perlootut.pod ","C : /Perl/lib/pods/perlop.pod ","C : /Perl/lib/pods/perlopenbsd.pod ","C :/Perl/lib/pods/perlopentut.pod ","C : /Perl/lib/pods/perlos2.pod ","C : /Perl/lib/pods/perlos390.pod ","C : /Perl/lib/pods/perlos400.pod ","C : /Perl/lib/pods/perlpacktut.pod ","C : /Perl/lib/pods/perlperf.pod ","C : /Perl/lib/pods/perlplan9.pod ","C :/Perl/lib pods/perlpod.pod " pod ","C : /Perl/lib/pods/perlport.pod ","C : /Perl/lib/pods/perlpragma.pod ","C : /Perl/lib/pods/perlqnx.pod ","C : /Perl/lib/pods/perlre.pod ","C : /Perl/lib/pods/perlreapi.pod ","C : /Perl/lib/pods/perlrebackslash.pod ","C :/Perl/lib pods/perlrecharclass.pod " pod ","C : /Perl/lib/pods/perlrepository.pod ","C : /Perl/lib/pods/perlrequick.pod ","C : /Perl/lib/pods/perlreref.pod ","C : /Perl/lib/pods/perlretut.pod ","C : /Perl/lib/pods/perlriscos.pod ","C : /Perl/lib/pods/perlrun.pod ","C :/Perl/lib pods/perlsec.pod " lstyle.pod ","C : /Perl/lib/pods/perlsub.pod ","C : /Perl/lib/pods/perlsymbian.pod ","C : /Perl/lib/pods/perlsyn.pod ", "C : /Perl/lib/pods/perlsynology.pod", "C : /Perl/lib/pods/perlthrtut.pod"]}

난 내가 구문 분석해야하기 때문에 내가 무엇을 할 수 있는지 모르겠어요 QJsonDocument 및 QJsonObject QString 함께 내 json.

내가 (이해하고 디버그 추한 것) 같은 QNetworkAccessManager

또는 같은 많은 것들을 시도가 : Curl external

감사

+0

나중에 표준 문자열을 qstring으로 변환 할 수 없습니까? – Hayt

+1

실수를 주셔서 감사합니다. QT5.7에 대해 얘기합니다. 예, 시도해 보았지만 여전히 같은 결과입니다. QBytesArray를 변환하려고 시도했지만 여전히 동일합니다. –

+0

문자열이 다르게 보일 때 어떤 문자인지 알고 있습니까? ? 문자열의 크기를 비교할 때? 그들은 다른가요? – Hayt

답변

2

을 당신은 표준 출력에 출력 qDebug() 사용하고 있습니까? 이것은 그것이 사용해야하는 것이 아닙니다.

많은 종류의 현재 내용을 디버그 형식으로 표시합니다. QString의 경우 특정 문자가있는 따옴표로 묶인 문자열을 의미합니다. - 큰 따옴표 포함 - \로 이스케이프 처리됩니다. 그렇다고 문자열 자체에 이스케이프 처리 된 데이터가 있음을 의미하지는 않습니다. 너에게 그걸 좋아하는 사람은 QDebug입니다.

+0

문제가 아니라 qDebug() 때문에 QJsonDocument QJsonDocument jsonResponse = QJsonDocument :: fromJson (jsonString.toUtf8()); Json 문자열로 변환하려고하면 빈 값이됩니다. 그는 그것을 읽을 수 없습니다. –

+0

게시 하시겠습니까? 코드 질문에? – krzaq

+0

예 물론 : http://pastebin.com/hWxCaaBX –

관련 문제