2014-12-18 44 views
0

我想创建一个特定格式的JSON文件。我最初的做法是通过使用JSONIO读取源JSON文件,检查生成的R列表元素并尝试使用我自己的源数据重新创建列表元素以用于toJSON来逆向工程。这种做法不必要的复杂。我重申的问题是:以特定格式创建列表? [或者:创建一个特定格式的JSON文件]

我要创建这个JSON文件:

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

从这个输入数据:

name group 
"Item 1" 1 
"Item 2" 1 
"Item 3" 2 

我现在更关注RJSONIO文档上。我以前专注于用我的数据重新创建R列表,而不是更多地了解RJSONIO。道歉误导。

下面的@jlhoward提供的代码片段效果很好,可以正确读取我的应用程序。有没有办法让JSON更可读的,如:

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

+1

你可能想看看'asJSVars()'和使用'.vars'参数 –

+0

我不明白你在问什么。你会用什么输入?您可以使用'dput(json_data)'将列表转换为复制/粘贴格式。 – MrFlick

+0

谢谢MrFlick。您的评论让我重新评估我的方法和问题。问题现在重申。理查德 - 我将更多地关注RJSONIO文档。 – Tim

回答

0

调用您的数据帧df

library(rjson) 
result <- toJSON(list(items=lapply(1:nrow(df),function(i)df[i,]))) 
cat(result) 
# {"items":[{"name":"Item 1","group":1},{"name":"Item 2","group":1},{"name":"Item 3","group":2}]} 
+0

有趣的是,注意,当RJSONIO代替rjson不同格式:“{ “项”:[ { “名称”:[ “项目1”], “基团”:[1] } ......等 – Tim

+0

这适用于我的应用程序。有没有办法让输出更具人性化,每个名称和组在单独的行上?我会更新原始问题以显示格式。 – Tim