R数据科学实战:工具详解与案例分析
上QQ阅读APP看书,第一时间看更新

1.7 jsonlite——JSON文件

JavaScript Object Notation(JSON)通常是作为不同语言之间互相交流信息的文件,JSON文件不但节省存储空间,其简洁明了的形式也很容易理解。jsonlite包既能够完整地将JSON格式的文件完整的解析和读取到R语言中来,也可以将任何常见的R对象(object)输出成JSON格式。在1.6节中,toJSON函数可用来将PDF文档目录转换成JSON格式,以便于理解各层级之间的关系。

读取JSON文件的fromJSON函数共包含6个参数,通常情况下,除了指定文件路径之外,其他参数使用默认设置即可。表1-17中列出了该函数的参数及功能描述。

表1-17 数据导入函数fromJSON参数详解

首先以JSON常见的数组形式创建一个字符串向量,保存为example。中括号代表数组的起始,双引号中代表值,值与值之间以逗号进行分隔,然后再用单引号将这一数组格式保存到字符串向量中。因为example中的数组是按照JSON格式输入的,所以直接使用fromJSON函数即可。在默认的参数设置下,可以得到一个包含4个值的R对象——字符串向量。运行fromJSON前后的这两个字符串向量虽然名字一样,但内容完全不同,感兴趣的读者可以单独运行example来对比某区别所在。formJSON示例代码如下:

> example <-'["a", "b", 0, "c"]'
> fromJSON(example)
## [1] "a" "b" "0" "c"

当参数simplifyVector被指定为假时,返回结果为一个含4个元素的列表。4个元素即代表共有4个值,每一个值都以列表的形式返回。当JSON格式的原始数据文件有多重嵌套时,可以通过设置参数来查看数据结构和正确读取数据。不过,一般情况下还是建议读者使用非嵌套数据进行来练习和使用R语言与JSON格式数据交互,待有一定了解后再提高难度。返回结果如下:

> fromJSON(example,simplifyVector = F)
## [[1]]
## [1] "a"
## 
## [[2]]
## [1] "b"
## 
## [[3]]
## [1] 0
## 
## [[4]]
## [1] "c"