jsonliteにもやっとした

このツイートを見て、jsonliteをちょっと触ってみたのでメモ。

jsonliteとは?

RでJSONというとRJSONIOrjsonですが、
それを置き換えるべく去年の12月に公開されたパッケージらしいです。

レポジトリjeroenooms/jsonlite · GitHub(RJSONIOからフォークしている)

紹介ブログ:OpenCPU - New package: jsonlite. A smart(er) JSON encoder/decoder.

なんかRJSONIOとかrjsonのいけてない感をなんとかしてくれそうな、
期待感にあふれています。

でも気になったとこ

それはこれ。

> cat(jsonlite::toJSON(jsonlite::fromJSON('{"x":1}')))
{ "x" : [ 1 ] }

なんと、fromJSONしてtoJSONした結果が、元と同じにならないのです。

まあこれは、すべてをベクトルとして扱うR的には正しいので、
いいのか悪いのか、何とも言えないところです。

ちなみにRJSONIOは以下のように、元と同じになります。

> cat(RJSONIO::toJSON(RJSONIO::fromJSON('{"x":1}')))
{
 "x":      1 
}

うーん。。

(そもそもRとJSONが相容れない、という話のような気もしてきましたが、
とりあえず今は深く考えないことにします)

追記

unbox()を使うといいそうです。すっきり。

jsonliteで要素ひとつだけのベクトルをうまくtoJSON()する - Technically, technophobic.