Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
Paul J. Davis 03098cb6c8 Added round trip info to README. il y a 14 ans
c_src Improve support for bignums. il y a 14 ans
src Improve support for bignums. il y a 14 ans
test Add tests for invalid utf-8 il y a 14 ans
.gitignore Initial import. il y a 14 ans
Makefile Initial import. il y a 14 ans
README.md Added round trip info to README. il y a 14 ans
rebar Initial import. il y a 14 ans
rebar.config Initial import. il y a 14 ans

README.md

Jiffy - JSON NIFs for Erlang

A JSON parser as a NIF. This is a complete rewrite of the work I did in EEP0018 that was based on Yajl. This new version is a hand crafted state machine that does its best to be as quick and efficient as possible while not placing any constraints on the parsed JSON.

Usage

Jiffy's API is nearly an exact duplicate of the EEP0018 behaviour except for one small difference. jiffy:encode/1 now returns an iolist (specifically, a binary or list of binaries). This is to allow for the encoding of large numbers.

Eshell V5.8.2  (abort with ^G)
1> jiffy:decode(<<"{\"foo\": \"bar\"}">>).
{ok,{[{<<"foo">>,<<"bar">>}]}}
2> Doc = {[{foo, [<<"bing">>, 2.3, true]}]}.
{[{foo,[<<"bing">>,2.3,true]}]}
3> jiffy:encode(Doc).
{ok,<<"{\"foo\":[\"bing\",2.2999999999999998224,true]}">>}

Data Format

Erlang                          JSON            Erlang
======================================================

null                       ->   null         -> null
true                       ->   true         -> true
false                      ->   false        -> false
"hi"                       ->   [104, 105]   -> [104, 105]
<<"hi">>                   ->   "hi"         -> <<"hi">>
hi                         ->   "hi"         -> <<"hi">>
1                          ->   1            -> 1
1.25                       ->   1.25         -> 1.24
[]                         ->   []           -> []
[true, 1.0]                ->   [true, 1.0]  -> [true, 1.0]
{[]}                       ->   {}           -> {[]}
{[{foo, bar}]}             -> {"foo": "bar"} -> {[{<<"foo">>, <<"bar">>}]}
{[{<<"foo">>, <<"bar">>}]} -> {"foo": "bar"} -> {[{<<"foo">>, <<"bar">>}]}

Improvements over EEP0018

Jiffy should be in all ways an improvemnt over EEP0018. It no longer imposes limits on the nesting depth. It is capable of encoding and decoding large numbers and t does quite a bit more checking for validity of valid UTF-8 in strings.