1

次の rjson コードを使用して JSON ファイルを作成します。df は入力データフレームを表します。

result <- toJSON(list(items=lapply(1:nrow(df),function(i)df[i,])))

ファイルは次のように表示されます。

{"items":[{"name":"Item 1","group":1},{"name":"Item 2","group":1},{"name":"Item 3","group":2}]}

ただし、次のように、出力をより人間が読めるようにしたいと思います。

{
 "items":[
   {"name":"Item 1","group":1},
   {"name":"Item 2","group":1},
   {"name":"Item 3","group":2}
 ]
}

RJSONIO には「きれいな」オプションがありますが、アプリケーションで必要な JSON 形式を作成しません。ファイル自体を後処理する以外に、rjson を使用して探している出力ファイルを作成する方法はありますか?

ありがとう、

ティム

4

1 に答える 1

3

準備が整っているかどうかはRJSONIOわかりません (少し混乱することがあります)。しかし、あなたが言及しrjsonたので、おそらく別の json パッケージを使用することにもオープンです。jsonliteパッケージを使用する可能性があります。

# unloadNamespace(RJSONIO) ## to avoid confusion between packages
library(jsonlite)

x <- '{"items":[{"name":"Item 1","group":1},{"name":"Item 2","group":1},{"name":"Item 3","group":2}]}'

## to go back and create your example list of 1 data frame
( dfl <- fromJSON(x) )
# $items
#     name group
# 1 Item 1     1
# 2 Item 2     1
# 3 Item 3     2

## prettify your json output
toJSON(dfl, pretty = TRUE)

ファイルに保存できる次のきれいなjsonを返しますwriteLines()

{
    "items": [
        {
            "name": "Item 1",
            "group": 1
        },
        {
            "name": "Item 2",
            "group": 1
        },
        {
            "name": "Item 3",
            "group": 2
        }
    ]
}
于 2014-12-22T19:19:44.573 に答える