読者です 読者をやめる 読者になる 読者になる

Vim 8.0 で追加された関数 json_decode()/json_encode()

Vim 8.0 では JSON 形式のデータを扱う機能が追加されました。

[注意]

Vim のヘルプを日本語翻訳してるvimdoc-jaですが、まだ最新版の Vim のヘルプに追従しておらず jsondecode()jsonencode() と表記されていますが、正しくは json_decode()json_encode() になります。 他にも最新版のヘルプに追従されてない表記があるので、最新版の機能などを使う際は :help json_decode()@en のように英語版のヘルプを参照するとよいです。

[使い方]

json_encode({expr})Vim script の値を渡して JSON 形式の文字列に変換し、json_decode({string})JSON 形式の文字列を Vim script の値に変換します。

let s:data = {
\   "size" : 3,
\   "chars" : [
\       "homu",
\       "mami",
\       "mada"
\   ]
\}

let s:json = json_encode(s:data)

echo s:json
" => {"chars":["homu","mami","mada"],"size":3}

echo type(s:json) == v:t_string
" => 1

echo json_decode(s:json)
" => {'chars': ['homu', 'mami', 'mada'], 'size': 3}