R语言 在jsonlite中把R对象转换为/从JSON的对象
在这篇文章中,我们将了解如何使用R编程语言在jsonlite中把R对象转换为/从JSON。
jsonlite包
R中的jsonlite包用于模拟R中JSON数据对象的转换,它可以很容易地转换为其他数据对象。该包可以通过以下命令下载并安装到R工作空间中。
install.packages("jsonlite")
在R中解析JSON
R中的JSON文本被包围在大括号中,周围是字符串。rjson包中的fromJSON()方法被用来将JSON数据转换为文本字符串。每个键都成为标题,它们所对应的值在行号下显示为字符串。这个方法执行JSON数据的反序列化。它将数据转换为一个等价的R对象。该方法有以下语法。
语法: fromJSON(json-text)
参数:
json-text - JSON内容或文件名。
# Importing jsonlite
library("jsonlite")
# Declaring the json text
json_text <- '{
"ID": ["1", "2", "3", "4", "5"],
"User_name": ["A", "B", "C", "D", "E"],
"Marks": [34, 64, 24, 68, 76],
"Branch": ["Commerce", "Science",
"Humanities", "Non-medical", "Humanities"]
}'
# Reading the json text
data <- fromJSON(json_text)
# Printing json data
print("JSON data")
print(data)
输出:
[1] "JSON data"
> print(data)
ID
[1] "1" "2" "3" "4" "5"User_name
[1] "A" "B" "C" "D" "E"
Marks
[1] 34 64 24 68 76Branch
[1] "Commerce" "Science" "Humanities" "Non-medical" "Humanities"
将JSON文本转换为数据框架
JSON文本也可以转换为一个数据框架。R对象可以被用来在一个更有组织的表格结构中可视化数据。在转换完JSON文本后,可以用as.data.frame()方法将其胁迫成一个数据框架对象。JSON文本的键被显示为数据框架的列标题,值是单元格的值。
语法:as.data.frame(data )
参数
data – 要转换为数据框架的数据
# Importing jsonlite
library("jsonlite")
# declaring the json text
json_text <- '{
"ID": ["1", "2", "3", "4", "5"],
"User_name": ["A", "B", "C", "D", "E"],
"Marks": [34, 64, 24, 68, 76],
"Branch": ["Commerce", "Science",
"Humanities", "Non-medical", "Humanities"]
}'
# reading the json text
data <- fromJSON(json_text)
# converting data into data frame
data_frame <- as.data.frame(data)
print("JSON dataframe")
print(data_frame)
输出:
ID User_name Marks Branch
1 1 A 34 Commerce
2 2 B 64 Science
3 3 C 24 Humanities
4 4 D 68 Non-medical
5 5 E 76 Humanities
将数据对象转换为JSON文本对象
toJSON()方法可以用来将数据对象转换成JSON文本对象。该方法的语法如下。
语法: toJSON(R-object-text)
参数:
R-object-text – R对象中包含的数据。
# Importing rjson
library(rjson)
# creating a data frame
data_frame <- data.frame(col1=c(1: 5),
col2=letters[1:5],
col3=c("Commerce",
"Humanities",
"CSE",
"Commerce",
"Humanities")
)
# printing the data frame
print("Data Frame")
print(data_frame)
# converting to json object
json_obj = toJSON(data_frame)
# printing the json
print("JSON")
print(json_obj)
输出:
[1] "Data Frame"
col1 col2 col3
1 1 a Commerce
2 2 b Humanities
3 3 c CSE
4 4 d Commerce
5 5 e Humanities
[1] "JSON"
[1] "{\"col1\":[1,2,3,4,5],\"col2\":[\"a\",\"b\",\"c\",\"d\",\"e\"],\"col3\":[\"Commerce\",\"Humanities\",\"CSE\",\"Commerce\",\"Humanities\"]}"
将列表对象转换为JSON数据
列表对象也可以通过toJSON()方法被胁迫为JSON数据字符串。它甚至可以是一个多级的列表。
语法:toJSON(data )
参数:
data – 要转换为JSON数据的数据。
# Importing jsonlite
library(jsonlite)
# creating a data frame
list_obj <- list(ob1=c(1: 3),
ob2="Yashika",
ob3=c(TRUE, FALSE),
ob4=list(ele1="x",
ele2="y"))
print("List")
print(list_obj)
# converting to json object
json_obj = toJSON(list_obj)
# printing json
print("JSON")
print(json_obj)
输出:
[1] "List"
ob1
[1] 1 2 3ob2
[1] "Yashika"
ob3
[1] TRUE FALSEob4
ob4ele1
[1] "x"
ob4ele2
[1] "y"
[1] "JSON"
[1] "{\"ob1\":[1,2,3],\"ob2\":\"Yashika\",\"ob3\":[true,false],\"ob4\":{\"ele1\":\"x\",\"ele2\":\"y\"}}"