-USING: json.writer tools.test json.reader json ;
+USING: hashtables json.writer tools.test json.reader json namespaces ;
IN: json.writer.tests
{ "false" } [ f >json ] unit-test
{ """"testSymbol"""" } [ testSymbol >json ] unit-test
[ { 0.5 } ] [ { 1/2 } >json json> ] unit-test
+
+[ "{\"b-b\":\"asdf\"}" ]
+ [ "asdf" "b-b" associate f jsvar-encode? [ >json ] with-variable ] unit-test
+
+[ "{\"b_b\":\"asdf\"}" ]
+ [ "asdf" "b-b" associate >json ] unit-test
M: sequence json-print ( array -- )
CHAR: [ write1 [ >json ] map "," join write CHAR: ] write1 ;
-TR: jsvar-encode "-" "_" ;
+! if jsvar-encode? is true, then implement jsvar-encode
+SYMBOL: jsvar-encode?
+t jsvar-encode? set-global
+TR: jsvar-encode "-" "_" ;
: tuple>fields ( object -- seq )
<mirror> [
M: hashtable json-print ( hashtable -- )
CHAR: { write1
- [ [ swap jsvar-encode >json % CHAR: : , >json % ] "" make ]
+ [ [ swap jsvar-encode? get [ jsvar-encode ] when >json % CHAR: : , >json % ] "" make ]
{ } assoc>map "," join write
CHAR: } write1 ;