我不認爲有任何其他的JSON解析器插件,但恕我直言,你的問題是,你需要一個特定的格式,而不只是任何一種有效的JSON的。
如果你不能改變你的JSON解析器我想你可以後期處理的JSON在NSIS(此代碼不能處理所有類型的報價,也沒有逃脫引號!):
Function PrettyOnelineJSON
Exch $0
Push $1
Push $2
Push $3
Push $4
StrCpy $1 "" ; In quote?
StrCpy $2 "" ; Prev. char.
StrCpy $3 "" ; Pos.
loop:
StrCpy $4 $0 1 $3
StrCmp $4 "" done
IntOp $3 $3 + 1
StrCmp $4 " " 0 +2
StrCmp $4 $2 eatone ; Was this and the previous character a space?
StrCpy $2 $4
StrCmp $4 "$\n" eatone
StrCmp $4 "$\r" eatone
StrCmp $4 '"' 0 loop
StrCmp $4 $1 +3
StrCpy $1 $4
Goto loop
StrCpy $1 ""
Goto loop
done:
Pop $4
Pop $3
Pop $2
Pop $1
Exch $0
Return
eatone:
StrCmp $1 "" 0 loop ; In a quoted string?
StrCpy $4 $0 "" $3
IntOp $3 $3 - 1
StrCpy $0 $0 $3
StrCpy $0 $0$4
Goto loop
FunctionEnd
Section
StrCpy $0 '"obj": [$\n "a A a A",$\n "b",$\n "c"$\n ]'
MessageBox mb_ok ORG=|$0|
Push $0
Call PrettyOnelineJSON
Pop $0
MessageBox mb_ok NEW=|$0|
SectionEnd
所以你需要空白保持完全一樣嗎? – Anders
是的,我需要保持一切 – ItayD
什麼是問題,換行符或空格/製表符?這仍然是合法的JSON ... – Anders