我正在尝试使用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个变量的数据框。最后一个变量是一个列表,其中包含所有的“batter”值。
我想扩展它以获得3个观察值和4个变量。
id type batter.id batter.type
0001 donut 1001 Regular
0001 donut 1002 Chocolate
0001 donut 1003 Blueberry
我需要直接解析JSON代码来完成这个任务吗?或者我需要使用类似于“unlist”的东西来构建表格? (如果是这样,如何使用类似于“unlist”的方法高效地完成?)
unlist
- 例如data.frame(lapply(fromJSON(txt, flatten=TRUE), unlist, rec=FALSE))
。 - thelatemail