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