json.writer: using interleave is much cleaner (thanks @jckarter!).

db4
John Benediktsson 2012-07-11 20:41:25 -07:00
parent c3a6eab9ca
commit 749d05ac6c
1 changed files with 5 additions and 12 deletions

View File

@ -39,9 +39,7 @@ M: real json-print ( num -- )
M: sequence json-print ( array -- )
CHAR: [ write1 [
unclip-last-slice swap
[ json-print CHAR: , write1 ] each
json-print
[ CHAR: , write1 ] [ json-print ] interleave
] unless-empty CHAR: ] write1 ;
SYMBOL: jsvar-encode?
@ -52,23 +50,18 @@ TR: jsvar-encode "-" "_" ;
: json-print-assoc ( assoc -- )
CHAR: { write1 >alist [
unclip-last-slice swap
jsvar-encode? get [
[ CHAR: , write1 ]
[
[ first jsvar-encode json-print ]
[ CHAR: : write1 second json-print ] bi
CHAR: , write1
] each
[ first jsvar-encode json-print ]
[ CHAR: : write1 second json-print ] bi
] interleave
] [
[ CHAR: , write1 ]
[
[ first json-print ]
[ CHAR: : write1 second json-print ] bi
CHAR: , write1
] each
[ first json-print ]
[ CHAR: : write1 second json-print ] bi
] interleave
] if
] unless-empty CHAR: } write1 ;