0

使用 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

Whole mat 将我们显示为 [1] 的列表,如您所见,它包含列表(在列表中?)。当我打印 mat 时,它会显示如上所示的结构。

typeof(mat)
[1] "list"

substring(mat,1,100)
[1] "list(id = c(\"10152663742099258_10152663749369258\", \"10152663742099258_10152663842204258\", \"101526637"

我无法从中访问特定元素(比如消息)。我也无法将其转换为字符串矩阵,因此我可以以结构化方式访问元素。

4

1 回答 1

0

我将 fromJSON 调用参数更改为 by 设置simplifyVector = FALSE(默认设置为 true)

lset <- fromJSON(jsonobj, simplifyVector = F, flatten=TRUE, unicode = TRUE)

这改变了垫子的形成方式,代码一直保持嵌套到每个叶元素。我可以继续使用 $ 更深入,并仅在叶元素处找到字符串值! lset$data[[x]]$comments$data[[y]]$from$name

现在有效!感谢所有的帮助

于 2014-08-25T12:14:57.330 回答