簡體   English   中英

QT5.7-為什么我用QString接收到格式錯誤的json值,但與std :: string完美匹配?

[英]QT5.7 - Why i get a malformed json value with QString but perfect with std::string?

我嘗試從Ruby On Rails中的API獲取json響應。

當我直接用curlpostman調用此url時,我得到一個完美的json響應。

當我將程序與在Static中編譯的QT5.7 Windows一起用於32位程序時,僅當使用std :: string時 ,我才能獲得完美的響應。

但是,如果我使用QDebug打印QString() ,則會得到以下格式錯誤且奇怪的結果:

“{\\” 成功\\ “:真實的,\\” 文件\\ “:\\” 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 /莢/ perlembed。莢\\ “\\ ”C:/Perl/lib/pods/perlexperiment.pod \\“,\\ ”C:/Perl/lib/pods/perlfaq.pod \\“,\\” C:/ Perl的/ LIB /莢/ perlfaq1 .POD \\ “\\ ”C:/Perl/lib/pods/perlfaq2.pod \\“,\\ ”C:/Perl/lib/pods/perlfaq3.pod \\“,\\” C:/ Perl的/ LIB /莢/ perlfaq4.pod \\ “\\ ”C:/Perl/lib/pods/perlfaq5.pod \\“,\\ ”C:/Perl/lib/pods/perlfaq6.pod \\“,\\” C:/ Perl的/ LIB /莢/perlfaq7.pod\\",\\"C:/Perl/lib/pods/perlfaq8.pod\\",\\"C:/Perl/lib/pods/perlfaq9.pod\\",\\"C:/Perl/lib/莢/ 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目錄/莢/perlglossaîv

所以,如果我打印std :: string ,我有一個完美的json,正是我想要的:

{ “成功”:真正的 “文件”: “C:/Perl/lib/pods/perlcn.pod”, “C:/Perl/lib/pods/perldata.pod”,“C:/ Perl的/ lib目錄/莢/ 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/莢/ 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/莢/ 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目錄/莢/ perlhacktut.pod “ ”C:/Perl/lib/pods/perlhaiku.pod“, ”C:/Perl/lib/pods/perlhist.pod“,” C:/ Perl的/ lib目錄/莢/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目錄/莢/ perlirix.pod “ ”C:/Perl/lib/pods/perljp.pod“, ”C:/Perl/lib/pods/perlko.pod“,” C:/ Perl的/ lib目錄/莢/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目錄/莢/ perlmodinstall.pod “ ”C:/Perl/lib/pods/perlmodlib.pod“, ”C:/Perl/lib/pods/perlmodstyle.pod“,” C:/ Perl的/ lib目錄/莢/perlmroapi.pod","C:/Perl/lib/pods/perlnetware.pod","C:/Perl/lib/pods/perlnewmod.pod","C:/Perl/lib/pods/perlnumber.pod” ,“C:/ Perl的/ lib目錄/莢/ perlobj.pod “ ”C:/Perl/lib/pods/perlootut.pod“, ”C:/Perl/lib/pods/perlop.pod“,” C:/ Perl的/ lib目錄/莢/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目錄/莢/ perlplan9.pod “ ”C:/Perl/lib/pods/perlpod.pod“, ”C:/Perl/lib/pods/perlpodspec.pod“,” C:/ Perl的/ lib目錄/莢/perlpodstyle.pod","C:/Perl/lib/pods/perlpolicy.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目錄/莢/ perlrebackslash.pod “ ”C:/Perl/lib/pods/perlrecharclass.pod“, ”C:/Perl/lib/pods/perlref.pod“,” C:/ Perl的/ lib目錄/莢/perlreftut.pod","C:/Perl/lib/pods/perlreguts.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.po d “ ”C:/Perl/lib/pods/perlrun.pod“, ”C:/Perl/lib/pods/perlsec.pod“, ”C:/Perl/lib/pods/perlsolaris.pod“,” C :/Perl/lib/pods/perlsource.pod “ ”C:/Perl/lib/pods/perlstyle.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。莢”]}

我不知道該怎么辦,因為我需要使用QString為QJsonDocument和QJsonObject解析我的json。

我嘗試了很多類似QNetworkAccessManager的方法

或(難以理解和調試的丑陋事物),例如: 外部卷曲

謝謝

您正在使用qDebug()來輸出stdout嗎? 這不是它應該用於的目的。

它以調試格式顯示許多類型的當前內容。 對於QString這意味着用某些字符將引號引起來的字符串(包括雙引號)用\\進行轉義。 這並不意味着字符串本身包含轉義的數據。 它只是通過QDebug呈現給您的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM