mirror https://github.com/sile/jsone

Takeru Ohta ff4dee2d87 jsone_encode.erlのspecがコメントアウトしたままになっていたのを修正 11 years ago
doc 8861e5429b エンコード処理をCPSで書き直し 11 years ago
src ff4dee2d87 jsone_encode.erlのspecがコメントアウトしたままになっていたのを修正 11 years ago
test 8861e5429b エンコード処理をCPSで書き直し 11 years ago
.gitignore bff1c05ea2 first commit 11 years ago
COPYING 8cfca951e7 Makefileやrebar.configなどを少し整理 11 years ago
Makefile 8cfca951e7 Makefileやrebar.configなどを少し整理 11 years ago
README.md 0d20739175 README.mdを微修正 11 years ago
rebar bff1c05ea2 first commit 11 years ago
rebar.config 6e36665c67 rebar.configにnativeオプションが残ってしまっていたので除去 11 years ago

README.md

jsone (0.2.1)

Erlangで実装されたJSONのエンコード/デコードライブラリ。

特徴

  • RFC4627準拠
  • 日本語を含む文字列に対応
    • ただし文字列はUTF-8のみをサポート
  • Pure Erlang
  • デコード処理部を実験的にCPS的に実装
    • パース途中にサブバイナリが生成されることを極力抑制して最適化
    • NIFを使わない実装の中ではおそらく最速

ビルド方法

ビルドツールにはrebarを使用している。

ビルド手順:

# ビルド
$ git clone git://github.com/sile/jsone.git
$ make init

# テスト & dialyzer 実行
$ make

# ロードパスに追加してErlangシェルを起動
$ make start
1> jsone:decode(<<"[1,2,3]">>).
[1,2,3]

API

EDOCドキュメント

使用例

%% デコード
> jsone:decode(<<"[1,2,3]">>).
[1,2,3]

> json:decode(<<"{\"1\":2}">>).
{[{<<"1">>,2}]}   % オブジェクトは {[Key, Value]} 形式にデコードされる

%% エンコード
> jsone:encode([1,2,3]).
<<"[1,2,3]">>

参考