将 JSON 对象保存到 file.JSON

问题描述 投票:0回答:4

我已经创建了一个 JSON 文件,并且我需要能够通过电子邮件与其他协作者共享该文件。然而,尽管有很多关于在 R 工作区中处理 JSON 对象的主题,但实际上没有资源讨论如何实际将 JSON 对象导出到 .JSON 文件。

这是一个简单的例子:

list1 <- vector(mode="list", length=2)
  list1[[1]] <- c("a", "b", "c")
  list1[[2]] <- c(1, 2, 3)

exportJson <- toJSON(list1)

## Save the JSON to file
save(exportJson, file="export.JSON")

## Attempt to read in the JSON
library("rjson")
json_data <- fromJSON(file="export.JSON")

最后一行尝试读取 JSON 文件,会导致错误:“Error in fromJSON(file = "export.JSON") :意外字符 'R'"

显然 save() 函数不是正确的方法,但经过大量谷歌搜索后,我没有找到任何说明如何将 JSON 导出到文件的内容。任何帮助将不胜感激。

json r io
4个回答
63
投票

您可以使用

write

library(RJSONIO)
list1 <- vector(mode="list", length=2)
list1[[1]] <- c("a", "b", "c")
list1[[2]] <- c(1, 2, 3)

exportJson <- toJSON(list1)
> exportJson
[1] "[\n [ \"a\", \"b\", \"c\" ],\n[      1,      2,      3 ] \n]"
write(exportJson, "test.json")
library("rjson")
json_data <- fromJSON(file="test.json")
> json_data
[[1]]
[1] "a" "b" "c"

[[2]]
[1] 1 2 3

30
投票

还有

jsonlite
套餐:

library(jsonlite)

exportJSON <- toJSON(list1)
write(exportJSON, "test.json")
list2 <- fromJSON("test.json")

identical(list1, list2)

0
投票

#我也用过jsonlite 安装.packages(“jsonlite”) 库(jsonlite)

导出JSON <- toJSON(df, pretty = TRUE) write_json(exportJSON, "saveAsName.json")


0
投票

此代码在 RStudio 中可以正常工作(2023 年 5 月)

     #Code to export a data.frame to json and then re-import it with RStudio (May 2023)"

    #Build data.frame
    install.packages("RJSONIO")
    library(RJSONIO)
    DF_json <- data.frame(nom = c("Alice", "Bob"), age = c(30, 25))
    DF_json

    #transform data.frame to json file
    exportJson <- toJSON(DF_json)
    exportJson

    #Export data.frame to json file
    write(exportJson, "C:/Users/u99amo/Downloads/test.json")

    #Read exported data.frame
    install.packages("rjson")
    library(rjson)

    json_data <- fromJSON(file="C:/Users/u99amo/Downloads/test.json")
    json_data <- data.frame(json_data)

    #control
    identical(DF_json, json_data)
© www.soinside.com 2019 - 2024. All rights reserved.