使用jsonlite将JSON数据转换为列表后,我最终得到的列表如下所示 在这种情况下,第10个元素包含9列(始终固定)和2行(每次都变化)的列表。
mat <- lset$data$comments$data[10]
mat
[[1]]
id can_remove created_time from.id
1 10152663742099258_10152663749369258 TRUE 2014-07-01T11:10:29+0000 10203711779968366
2 10152663742099258_10152663842204258 TRUE 2014-07-01T12:15:57+0000 706804257
3 10152663742099258_10152663929639258 TRUE 2014-07-01T13:25:28+0000 10152738599744416
4 10152663742099258_10152663976344258 TRUE 2014-07-01T13:59:33+0000 706804257
from.name like_count
1 Aileen Yeow 1
2 Tejas Damania 0
3 Sandeep Kulkarni 1
4 Tejas Damania 0
message
1 Lame statement
2 Don't forget, people like you only because they don't know you! <ed><U+00A0><U+00BD><ed><U+00B8><U+00A1>
3 ...for a second I thought it's Accenture Singapore office with some new theme similar to its brand!
4 This is shanghai and nothing to do with firm I work for <ed><U+00A0><U+00BD><ed><U+00B8><U+008E>
user_likes
1 FALSE
2 FALSE
3 TRUE
4 FALSE
全垫将我们列为[1] 如您所见,它包含列表(在列表中?)。当我打印垫子然后它显示如上所示的结构。
typeof(mat)
[1] "list"
substring(mat,1,100)
[1] "list(id = c(\"10152663742099258_10152663749369258\", \"10152663742099258_10152663842204258\", \"101526637"
我无法从中访问特定元素(比如消息)。我也无法将其转换为字符串矩阵,因此我可以以结构化方式访问元素。
答案 0 :(得分:0)
我通过设置simplifyVector = FALSE
(默认设置为true)将fromJSON调用参数更改为
lset <- fromJSON(jsonobj, simplifyVector = F, flatten=TRUE, unicode = TRUE)
这改变了mat的形成方式,代码一直保持嵌套到每个叶子元素。我可以使用$继续深入,只在叶元素中找到字符串值!
lset$data[[x]]$comments$data[[y]]$from$name
现在有效!感谢所有的帮助