vim-jp/vital.vim — pull request #171 by lambdalisue (2014-06-15 04:34:19+00:00)
Title: Add true/false/null tokens support to Web.JSON module.

#### Summary
Now Web.JSON support `true`, `false`, and `null` tokens in its `encode` function. You can use these tokens as

```vim
let s:JSON = s:V.import('Web.JSON')
echo s:JSON.encode([
\ s:JSON.token('true'),
\ s:JSON.token('false'),
\ s:JSON.token('null'),
\])
" it will display '[true, false, null]'
```

---

#170 で問題視した部分の修正案です。`s:JSON.token('true')`のようにすることでJSON上で`true`を表すトークンを取得できます。これを`s:JSON.encode(val)`で用いると、JSON上で`true`と表現されます。

なお`s:JSON.decode(val)`に関しては後方互換性のためにいじっていないため`[true, false, null]`というJSONが`s:JSON.decode(val)`に渡されると`[1, 0, 0]`というVimオブジェクトに変換されます。個人的にはリバーシブルではない実装は気持ちが悪いので後方互換性を捨てたいですが……

Vitalのコードを読むのも書くのも初めてなので、問題等あればご指摘ください。