使用括号从 R 中的列表创建 Json
Create Json from list in R with brackets
我正在尝试创建一个 JSON 字符串来发送来自 API 的 POST 请求(CTUIT 对餐馆的招摇 API)。
# Load packages ----------------------------------------------
library(tidyverse)
library(httr)
library(jsonlite)
我在 R 中创建了一个嵌套列表,我想将其转换为 JSON 并使用 jsonlite::toJSON() 构建 JSON 字符串:
# Nested list
my_list <-
list(grouping = 2,
locationID = 4,
metricID = 1,
startDate = '2021-10-31',
endDate = '2021-10-31',
filters = list(
id = 1,
value = 6)
)
# Convert the list to JSON
my_JSON <- jsonlite::toJSON(my_list,
auto_unbox = TRUE,
pretty = TRUE)
my_JSON
结果如下:
{
"grouping": 2,
"locationID": 4,
"metricID": 1,
"startDate": "2021-10-31",
"endDate": "2021-10-31",
"filters": {
"id": 1,
"value": 6
}
}
我需要弄清楚如何做的是在“filters”元素周围添加方括号 [] 以匹配 API 文档。根据 API 说明,这需要看起来像:
[
{
"grouping": 2,
"locationID": 4,
"metricID": 1,
"startDate": "2021-10-31",
"endDate": "2021-10-31",
"filters": [
{
"id": 1,
"value": [
6
]
}
]
}
]
jsonlite 包可以实现吗?
我不确定方括号的术语,但我可以使用 paste0() 轻松地将它们添加到完整 JSON 字符串的任一侧。我想弄清楚如何获得 JSON 内部元素的方括号。特别是嵌套的“过滤器”元素。
谢谢
非常简单:
jsonlite::toJSON(
list(
c(
list(
"grouping" = 2,
"locationID" = 4,
"metricID" = 1,
"startDate" = "2021-10-31",
"endDate" = "2021-10-31",
"filters" = list(
list(
"id" = 1,
"value" = list(6)
)
)
)
)
),
pretty = TRUE,
auto_unbox = TRUE
)
这导致:
[
{
"grouping": 2,
"locationID": 4,
"metricID": 1,
"startDate": "2021-10-31",
"endDate": "2021-10-31",
"filters": [
{
"id": 1,
"value": [
6
]
}
]
}
]
我正在尝试创建一个 JSON 字符串来发送来自 API 的 POST 请求(CTUIT 对餐馆的招摇 API)。
# Load packages ----------------------------------------------
library(tidyverse)
library(httr)
library(jsonlite)
我在 R 中创建了一个嵌套列表,我想将其转换为 JSON 并使用 jsonlite::toJSON() 构建 JSON 字符串:
# Nested list
my_list <-
list(grouping = 2,
locationID = 4,
metricID = 1,
startDate = '2021-10-31',
endDate = '2021-10-31',
filters = list(
id = 1,
value = 6)
)
# Convert the list to JSON
my_JSON <- jsonlite::toJSON(my_list,
auto_unbox = TRUE,
pretty = TRUE)
my_JSON
结果如下:
{
"grouping": 2,
"locationID": 4,
"metricID": 1,
"startDate": "2021-10-31",
"endDate": "2021-10-31",
"filters": {
"id": 1,
"value": 6
}
}
我需要弄清楚如何做的是在“filters”元素周围添加方括号 [] 以匹配 API 文档。根据 API 说明,这需要看起来像:
[
{
"grouping": 2,
"locationID": 4,
"metricID": 1,
"startDate": "2021-10-31",
"endDate": "2021-10-31",
"filters": [
{
"id": 1,
"value": [
6
]
}
]
}
]
jsonlite 包可以实现吗?
我不确定方括号的术语,但我可以使用 paste0() 轻松地将它们添加到完整 JSON 字符串的任一侧。我想弄清楚如何获得 JSON 内部元素的方括号。特别是嵌套的“过滤器”元素。
谢谢
非常简单:
jsonlite::toJSON(
list(
c(
list(
"grouping" = 2,
"locationID" = 4,
"metricID" = 1,
"startDate" = "2021-10-31",
"endDate" = "2021-10-31",
"filters" = list(
list(
"id" = 1,
"value" = list(6)
)
)
)
)
),
pretty = TRUE,
auto_unbox = TRUE
)
这导致:
[
{
"grouping": 2,
"locationID": 4,
"metricID": 1,
"startDate": "2021-10-31",
"endDate": "2021-10-31",
"filters": [
{
"id": 1,
"value": [
6
]
}
]
}
]