r - 使用 RJSONIO 在 R 中解析深度嵌套的 JSON 结构

标签 r

我怀疑我在这里遗漏了一些明显的东西,但是我如何使用 RJSONIO 解析 R 中的深层嵌套结构? ?

例如 - 假设我想直接在 results.data.json$MRData$RaceTable$Races[[1]]$Results[[8]]$Driver 中引用 $familyName使用以下代码段抓取:

require(RJSONIO)
resultsURL='http://ergast.com/api/f1/2012/1/results.json'
results.data.json=fromJSON(resultsURL)
RJSONIO似乎不想解析 ..$Results[[i]]数据作为结构化元素?

最佳答案

require(RJSONIO)

somedata1<-list(a=1,b='w')
fromJSON(toJSON(somedata1))
# $a
# [1] 1

# $b
# [1] "w"

somedata2<-list(a=1,b=2)
fromJSON(toJSON(somedata2))
# a b 
# 1 2 

somedata3<-list(a='v',b='w')
fromJSON(toJSON(somedata3))
#  a   b 
# "v" "w" 

fromJSON(toJSON(somedata3),simplify=StrictNumeric)
# $a
# [1] "v"

# $b
# [1] "w"

fromJSON(toJSON(somedata2),simplify=FALSE)
# $a
# [1] 1

# $b
# [1] 2

fromJSON(toJSON(somedata3),simplifyWithNames = FALSE)
# $a
# [1] "v"

# $b
# [1] "w"


fromJSON(toJSON(somedata2),simplifyWithNames = FALSE)
# $a
# [1] 1

# $b
# [1] 2

从上面的示例中,默认情况下 RJSON 将“同构标量元素的集合/数组简化为 R 向量”。可以使用 simplify 控制这种简化。或 simplifyWithNames .在您的示例中,您可以执行以下任何操作来访问您想要的元素:
require(RJSONIO)
resultsURL='http://ergast.com/api/f1/2012/1/results.json'
results.data.json=fromJSON(resultsURL)
results.data.json$MRData$RaceTable$Races[[1]]$Results[[8]]$Driver['familyName']
# familyName 
#    "Pérez" 

results.data.json=fromJSON(resultsURL,simplify=FALSE)
results.data.json$MRData$RaceTable$Races[[1]]$Results[[8]]$Driver$familyName
# [1] "Pérez"

results.data.json=fromJSON(resultsURL,simplify=StrictNumeric)
results.data.json$MRData$RaceTable$Races[[1]]$Results[[8]]$Driver$familyName
# [1] "Pérez"

results.data.json=fromJSON(resultsURL,simplifyWithNames = FALSE)
results.data.json$MRData$RaceTable$Races[[1]]$Results[[8]]$Driver$familyName
# [1] "Pérez"

关于r - 使用 RJSONIO 在 R 中解析深度嵌套的 JSON 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12449670/

相关文章:

r - 在 R 中编码缺失数据

r - 将 on.exit expr 添加到父调用?

r - 只有数字没有圆圈的 geom_point 图

r - 使用 `.value` 和 `pivot_longer()` 时如何将后缀附加到 `names_pattern`

r - R 图例中的框和线

r - 为什么 geom_smooth 不显示平滑线?

r - 如何将数据框转换为组合矩阵

r - ggplot2-如何在离散刻度轴值中绘制连续值?

r - x轴离散时的geom_ribbon覆盖

r - 条件累计和