JSONをWebアプリケーションではよく使います。しかし、JSONで使われている記号(波括弧やカギ括弧など)はURLに使うことができず、エンコードしなければなりません。その結果、URLで使うとURLが長くなってしまいます。 そこで作られたのがjsurlです。JSONをURLセーフにし、なるべく短い文字列にします。

jsurlの使い方

例えば以下のようなJSONを想定します。

{"name":"John Doe","age":42,"children":["Mary","Bill"]}

これをURL上で使うと、エンコーディングして次のような文字列になります。

%7B%22name%22:%22John%20Doe%22,%22age%22:42,%22children%22:%5B%22Mary%22,%22Bill%22%5D%7D

これに対してjsurlは次のような文字列です。

~(name~'John*20Doe~age~42~children~(~'Mary~'Bill))

これはURLエンコードしても同じ文字が返ってきます。日本語の場合は文字がエンコードされるので同じ文字という訳にはいきませんが、JSONに比べるとバイト数は減らせるでしょう。特定の条件に沿ってJSONを変換しているだけなので、JSONとの相互変換は問題なさそうです。

jsurlはJavaScript製のオープンソース・ソフトウェア(MIT License)です。

Sage/jsurl: URL-friendly JSON