Vimでjsonをeval

VimスクリプトJSON APIを公開しているwebサービスの内容を取得しようとしています.
調べた感じでは ココ->意外と知られていないvimのtips(vimでJSONを解釈してみる)の方法が簡単そうです.

やってる内容は,
Vimの辞書型データが(多分偶然)JSONの表記とそっくりなことを利用して,
JSのように*1evalして値を取得するという方法です.


一応以下にコピペ(+コメントを追加)

function! GetJson(url)
	" エンコーディングの設定を退避
	let org = &enc
	" utf-8モードに設定
	let &enc = "utf-8"
	" curlでwebサイトの内容を持ってくる
	let ret = system("curl -k -u user:pass -s \"" . a:url . "\"")
	" うにこーどをアンエスケープ
	let ret = substitute(ret, '\\u\([0-9a-zA-Z]\{4\}\)', '\=nr2char("0x".submatch(1))', 'g')
	" evalして文字列->値に変換
	exe "let val = " . iconv(ret, "utf-8", org)
	" エンコーディングの設定を復元
	let &enc = org
	return val
endfunction

なんですがこれはJSONのデータとして'null'が含まれているとエラーになるです.
なぜならVimスクリプトには'null'という値が無いから….

したがってevaった時点でnullがVimスクリプトの値として定義されていればよい(ハズ!)

function! GetJson(url)
	let org = &enc
	" nullをあらかじめ定義
	let null = []
	let &enc = "utf-8"
	let ret = system("curl -k -u user:pass -s \"" . a:url . "\"")
	let ret = substitute(ret, '\\u\([0-9a-zA-Z]\{4\}\)', '\=nr2char("0x".submatch(1))', 'g')
	exe "let val = " . iconv(ret, "utf-8", org)
	let &enc = org
	return val
endfunction

これで一応エラーで無くなりました\(^o^)/
nullに対応する値は何にするのがよさげなんでしょうか?

*1:JS知らんけど