RJSONIO de Omegahat es otro paquete que proporciona facilidades para leer y escribir datos en formato JSON.
rjson no utiliza métodos S4 / S3 y, por lo tanto, no es fácilmente extensible, pero sigue siendo útil. Desafortunadamente, no utiliza operaciones vectorizadas y, por lo tanto, es demasiado lento para datos no triviales. De manera similar, para leer datos JSON en R, es algo lento y, por lo tanto, no se escala a datos grandes, en caso de que esto sea un problema.
Actualización (nuevo paquete 2013-12-03):
jsonlite : este paquete es una bifurcación del RJSONIO
paquete. Se basa en el analizador de RJSONIO
pero implementa una asignación diferente entre los objetos R y las cadenas JSON. El código C de este paquete es principalmente del RJSONIO
paquete, el código R se ha reescrito desde cero. Además de los reemplazos directos para fromJSON
y toJSON
, el paquete tiene funciones para serializar objetos. Además, el paquete contiene una gran cantidad de pruebas unitarias para garantizar que todos los casos extremos estén codificados y decodificados de forma coherente para su uso con datos dinámicos en sistemas y aplicaciones.
El paquete jsonlite es fácil de usar e intenta convertir json en marcos de datos.
Ejemplo:
fuente
jsonlite
es más o menos tan útil como un tenedor para comer sopa.Aquí está el ejemplo que falta
fuente
La función fromJSON () en RJSONIO, rjson y jsonlite no devuelve un data.frame 2D simple para objetos json anidados complejos.
Para superar esto, puede usar tidyjson . Toma un json y siempre devuelve un data.frame. Actualmente no está disponible en CRAN, puede obtenerlo aquí: https://github.com/sailthru/tidyjson
Actualización: tidyjson ahora está disponible en cran, puede instalarlo directamente usando
install.packages("tidyjson")
fuente
Para el registro, rjson y RJSONIO cambian el tipo de archivo, pero en realidad no lo analizan per se. Por ejemplo, recibo datos desagradables de MongoDB en formato JSON, los convierto con rjson o RJSONIO, luego uso unlist y toneladas de corrección manual para analizarlos en una matriz utilizable.
fuente
Pruebe el siguiente código usando RJSONIO en la consola
fuente