0

RJSONIO::toJSON 呼び出しを介して JSON に変換したいこのデータ構造があります

tmpdf<-data.frame(Date=c("20140610", "20140611"), Users=c(5,10))
tmp<-list(data=tmpdf, 
          onduplicate=data.frame(Users="replace"), 
          type=data.frame(Users="line"), 
          color=data.frame(Users="#52ff7f"))

このデータを生成する必要があります:

{ "data":     [ { "Date":  "20140610", "Users":  "5"}, 
                { "Date":  "20140611", "Users":  "10"} ],
  "onduplicate":{ "Users":  "replace" },
  "color":      { "Users":  "#52ff7f" },
  "type":       { "Users":  "line" } 
}

しかし、RJSONIOを使用すると

> cat(toJSON(tmp))

私は得る:

{ "data":       { "Date": ["20140610", "20140611"], "Users":[5, 10]},
  "onduplicate":{"Users":"replace"},
  "color":      {"Users":"#52ff7f"}
  "type":       {"Users":"line"},
}

これは必要なものとほぼ同じですが、データのネストがうまくいきません。これはほんの一例にすぎません。これは、数百のデータ ポイントに対して実行する必要があります。tmpdf がシミュレートする元のデータは、常に data.frame として配信されます。どちらの JSON も有効な JSON ですが、データをプッシュするプロバイダーは最初の形式しか受け入れません。これどうやってするの?

4

1 に答える 1

1
tmpdf <- data.frame(Date=c("20140610", "20140611"), Users=c(5,10))
tmpdf <- apply(tmpdf, 1, as.list) #ADDED
tmp <- list(data=tmpdf, 
        onduplicate=data.frame(Users="replace"), 
        type=data.frame(Users="line"), 
        color=data.frame(Users="#52ff7f"))
cat(toJSON(tmp))

与える

{ "data": [ { "Date": "20140610","Users": " 5" },
            { "Date": "20140611","Users": "10" } ],
 "onduplicate": { "Users": "replace" },
 "type": { "Users": "line" },
 "color": { "Users": "#52ff7f" } 
} 

親切な挨拶

于 2014-06-18T18:03:10.257 に答える