45

I've create a JSON file, and I need to be able to share the file via email with other collaborators. However, although there are plenty of topics available on handling JSON objects in the R workspace, there are virtually no resources discussing how to actually export a JSON object to a .JSON file.

Here's a simple example:

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")

The final line, attempting to read in the JSON file, results in an error: "Error in fromJSON(file = "export.JSON") : unexpected character 'R'"

Obviously the save() function is not the way to go, but after extensive googling, I have found nothing that says how to export the JSON to a file. Any help would be greatly appreciated.

Nathan Calverley
  • 919
  • 1
  • 6
  • 16

2 Answers2

59

You can use 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
jdharrison
  • 29,243
  • 4
  • 71
  • 87
  • 1
    I am using this method but it writes the file in one line. Any idea how can I overpass it? Can see also in this link: http://stackoverflow.com/questions/33958711/changing-values-in-json-file-through-r – Mpizos Dimitris Dec 01 '15 at 00:13
  • But where is the file written to? – PM0087 Sep 08 '20 at 14:00
22

There is also the jsonlite package:

library(jsonlite)

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

identical(list1, list2)
James Hirschorn
  • 5,748
  • 4
  • 38
  • 49