rcs*_*rcs 86
来自Omegahat的RJSONIO是另一个包,它提供了以JSON格式读写数据的工具.
rjson不使用S4/S3方法,因此不易扩展,但仍然有用.不幸的是,它没有使用矢量化操作,因此对于非平凡数据来说太慢了.类似地,为了将JSON数据读入R,它有点慢,因此不能扩展到大数据,如果这是一个问题.
更新(新包2013-12-03):
jsonlite:这个包是包的一个分支RJSONIO
.它构建在解析器之上,RJSONIO
但实现了R对象和JSON字符串之间的不同映射.这个包中的C代码主要来自RJSONIO
Package,R代码已经从头开始重写.除了for fromJSON
和drop-in替换之外toJSON
,该包还具有序列化对象的功能.此外,该软件包包含许多单元测试,以确保所有边缘情况都被编码和解码,以便与系统和应用程序中的动态数据一起使用.
小智 53
该jsonlite包易于使用,并试图JSON转换成数据帧.
例:
library(jsonlite)
# url with some information about project in Andalussia
url <- 'http://www.juntadeandalucia.es/export/drupaljda/ayudas.json'
# read url and convert to data.frame
document <- fromJSON(txt=url)
Run Code Online (Sandbox Code Playgroud)
小智 19
这是缺少的例子
library(rjson)
url <- 'http://someurl/data.json'
document <- fromJSON(file=url, method='C')
Run Code Online (Sandbox Code Playgroud)
RJSONIO、rjson 和 jsonlite 中的 fromJSON() 函数不会为复杂的嵌套 json 对象返回简单的 2D data.frame。
为了克服这个问题,你可以使用tidyjson。它接受 json 并始终返回 data.frame。目前在 CRAN 中不可用,您可以在这里获取: https: //github.com/sailthru/tidyjson
更新: tidyjson现已在cran中可用,您可以直接使用安装它install.packages("tidyjson")