json.writer: using interleave is much cleaner (thanks @jckarter!).
parent
c3a6eab9ca
commit
749d05ac6c
|
@ -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 ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue