我正在尝试使用R解析JSON。在jsonlite包中使用fromJSON()
可以实现大部分功能。但是,当json具有多个级别时,构建数据帧的最有效方法是什么?
假设我有这个json代码:
[
{
"id":"0001",
"type":"donut",
"batters":{
"batter":[
{
"id":"1001",
"type":"Regular"
},
{
"id":"1002",
"type":"Chocolate"
},
{
"id":"1003",
"type":"Blueberry"
}
]
}
}
]
我读入并使用fromJSON
进行解析
json <- readLines(...)
out <- fromJSON(json)
这为我提供了一个包含1个观测值和3个变量的数据框架。最后一个变量是一个列表;面糊";价值观
我想把它建立起来,得到3个带有4个变量的观测值。
id type batter.id batter.type
0001 donut 1001 Regular
0001 donut 1002 Chocolate
0001 donut 1003 Blueberry
在解析json代码时,我可以直接使用吗?或者我需要使用unlist
之类的东西构建表吗?(如果是这样的话,使用unlist
这样的东西如何有效地做到这一点?(
经过进一步挖掘,我在tidyr中找到了unnest
。
unnest(out, batter, names_sep = ".")