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

Takeru Ohta 573c053f55 ドキュメントを追加 11 лет назад
doc 573c053f55 ドキュメントを追加 11 лет назад
src 573c053f55 ドキュメントを追加 11 лет назад
test 79c3d86283 JSONエンコード用のモジュールを実装 11 лет назад
.gitignore bff1c05ea2 first commit 11 лет назад
COPYING 27423dcf2a specおよびedocコメントを追加 11 лет назад
Makefile 573c053f55 ドキュメントを追加 11 лет назад
README.md 573c053f55 ドキュメントを追加 11 лет назад
rebar bff1c05ea2 first commit 11 лет назад
rebar.config 573c053f55 ドキュメントを追加 11 лет назад

README.md

jsone (0.1.0)

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

特徴

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

ビルド方法

ビルドツールには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}">>).
{{object,[{<<"1">>,2}]},<<>>}   % オブジェクトは {object, [Key, Value]} 形式にデコードされる

%% エンコード
> jsone:encode([1,2,3]).
[91,[[<<"1">>,44,<<"2">>],44,<<"3">>],93]  % iodata()が返る

> iolist_to_binary(jsone:encode([1,2,3])).
<<"[1,2,3]">>

参考