Achatar lista / objeto baseado em registro em dataframe

Edit: esta questão está desatualizada. ojsonlite pacote achata automaticamente.

Estou lidando com fluxos de dados on-line que possuem codificação baseada em registros, geralmente em JSON. A estrutura do objeto (ou seja, os nomes no JSON) são conhecidos da documentação da API, no entanto, os valores são em sua maioria opcionais e não estão presentes em todos os registros. As listas podem conter novas listas e a estrutura é às vezes bastante profunda. Aqui está um exemplo bastante simples de alguns dados de GPS:http://pastebin.com/raw.php?i=yz6z9t25. Note que nas linhas inferiores, o"l" objeto está faltando devido a nenhum sinal de GPS.

Eu estou procurando uma maneira elegante de achatar esses objetos em um dataframe. Atualmente estou usando algo assim:

library(RJSONIO)
library(plyr)

obj <- fromJSON("http://pastebin.com/raw.php?i=yz6z9t25", simplifyWithNames=FALSE, simplify=FALSE)
flatdata <- lapply(obj$data, as.data.frame);
mydf <- rbind.fill(flatdata)

Isso faz o trabalho, mas é lento e propenso a erros. Um problema com essa abordagem é que não estou usando meu conhecimento sobre a estrutura (nomes de objeto) nos dados; em vez disso, infere-se dos dados. Isso leva a problemas quando uma certa propriedade está ausente em todos os registros. Nesse caso, ele não aparecerá no dataframe, em vez de uma coluna com valores de NA. Isso pode levar a problemas a jusante. Por exemplo, preciso processar o registro de data e hora da localização:

mydf$l.t <- structure(mydf$l.t/1000, class="POSIXct")

No entanto, isso resultará em um erro no caso de um conjunto de dados no qual ol$t objeto não está lá. Além disso, tanto oas.data.frame erbind.fill faça as coisas bem devagar. O conjunto de dados de exemplo é relativamente pequeno. Alguma sugestão para melhor implementação? Uma solução robusta sempre produziria um dataframe com as mesmas colunas na mesma ordem e onde apenas o número de linhas varia.

Edit: abaixo de um conjunto de dados com mais metadados. É maior em tamanho e aninhado mais profundamente:

obj <- fromJSON("http://www.stat.ucla.edu/~jeroen/files/output.json", simplifyWithNames=FALSE, simplify=FALSE)

questionAnswers(3)

yourAnswerToTheQuestion