yason
yason copied to clipboard
Common Lisp JSON serializer written with simplicity in mind
* \*allow-nan\* - allows parsing of Nan,Inf,Infinity into 'nan 'plus-infinity 'minus-infinity * \*yason-float-parser\* - allows separate float parser for floats * \*yason-float-type\* - now 'double-float - sets output type of...
NaNs are not supported in JSON by default (though in Perl parser apparently). Some JSON files contain them, though. I found this to be a useful change in parse.lisp ```...
The call to OUTPUT-STREAM here means that the value of the object element isn't indented properly: https://github.com/phmarek/yason/blob/cbad2f6ed064e434a94ee1a09c4952cc4fa578d4/encode.lisp#L427 Without the fix: ```lisp (yason:with-output (*standard-output* :indent t) (yason:with-object () (yason:encode-object-element "foo" (alexandria:iota...
Here is a minimal example how to reproduce the problem: ``` (let ((*print-pretty* t)) (yason:with-output-to-string* () (yason:encode 0))) ``` Tested on CCL 1.12.1. This code signals the error: ``` >...
Yason encodes single-float values incorrectly. ```common-lisp CL-USER> (yason:with-output-to-string* () (yason:encode 1.2)) ;=> "1.2000000476837158" ``` It's because Yason coerces them to double-float, which can be different from the original ones. https://github.com/phmarek/yason/blob/0c84b29a32c284f6b4be6f8587ff89b5702a6fda/encode.lisp#L131...