更改要写入的结构数据 JSON
Change structure data to write to JSON
您好,我想更改写入 JSON 的数据结构,但我不确定如何更改。
这是我的代码:
test_df <- data.frame(Metric = c("test1",
"test2",
"test3",
"test4",
"test5"),
Value = c(tail(test1$v, 1),
tail(test2$v, 1),
tail(test3$v, 1),
tail(test4$v, 1),
tail(test5$v, 1)))
test_df_list <- list(test_df)
names(test_df_list) <- "test_df_df"
test_df_exportJSON <- toJSON(test_df_list, pretty = TRUE)
write(test_df_exportJSON, "test_df.json")
结果:
{
"test_df": [
{
"Metric": "test1",
"Value": 47
},
{
"Metric": "test2",
"Value": 0.85
},
{
"Metric": "test3",
"Value": 0.98
},
{
"Metric": "test4",
"Value": 137
},
{
"Metric": "test5",
"Value": 2.1
}
]
}
但我想像这样删除 []:
{
"test_df":
{
"test1": 47,
"test2": 0.85,
"test3": 0.98,
"test4": 137,
"test5": 2.1
}
}
知道怎么做吗?任何帮助都会很棒!
我以某种方式收到消息“看起来您的 post 主要是代码;请添加更多详细信息”,因此请忽略此行以接受它 ;)
您可以在创建列表时删除 Metric
,稍后将其作为名称添加到列表元素中。还将 Value
拆分为单个列表项。由于我手头没有您的 test1
数据,因此我在下面创建了一个示例。
library(jsonlite)
test_df <- data.frame(Metric = c('test1','test2','test3','test4','test5'),
Value = c(4,6,2,8,7))
names <- as.vector(test_df$Metric)
test_df_list <- structure(split(test_df$Value, seq(nrow(test_df))), names = names)
test_df_list <- list(test_df = test_df_list)
toJSON(test_df_list, pretty = TRUE, auto_unbox = TRUE)
会给予
{
"test_df": {
"test1": 4,
"test2": 6,
"test3": 2,
"test4": 8,
"test5": 7
}
}
如果您从 toJSON()
remove auto_unbox = TRUE
值将在方括号中 [
].
这对我有用,但也许有人想出了一个更方便的解决方案。
您好,我想更改写入 JSON 的数据结构,但我不确定如何更改。
这是我的代码:
test_df <- data.frame(Metric = c("test1",
"test2",
"test3",
"test4",
"test5"),
Value = c(tail(test1$v, 1),
tail(test2$v, 1),
tail(test3$v, 1),
tail(test4$v, 1),
tail(test5$v, 1)))
test_df_list <- list(test_df)
names(test_df_list) <- "test_df_df"
test_df_exportJSON <- toJSON(test_df_list, pretty = TRUE)
write(test_df_exportJSON, "test_df.json")
结果:
{
"test_df": [
{
"Metric": "test1",
"Value": 47
},
{
"Metric": "test2",
"Value": 0.85
},
{
"Metric": "test3",
"Value": 0.98
},
{
"Metric": "test4",
"Value": 137
},
{
"Metric": "test5",
"Value": 2.1
}
]
}
但我想像这样删除 []:
{
"test_df":
{
"test1": 47,
"test2": 0.85,
"test3": 0.98,
"test4": 137,
"test5": 2.1
}
}
知道怎么做吗?任何帮助都会很棒!
我以某种方式收到消息“看起来您的 post 主要是代码;请添加更多详细信息”,因此请忽略此行以接受它 ;)
您可以在创建列表时删除 Metric
,稍后将其作为名称添加到列表元素中。还将 Value
拆分为单个列表项。由于我手头没有您的 test1
数据,因此我在下面创建了一个示例。
library(jsonlite)
test_df <- data.frame(Metric = c('test1','test2','test3','test4','test5'),
Value = c(4,6,2,8,7))
names <- as.vector(test_df$Metric)
test_df_list <- structure(split(test_df$Value, seq(nrow(test_df))), names = names)
test_df_list <- list(test_df = test_df_list)
toJSON(test_df_list, pretty = TRUE, auto_unbox = TRUE)
会给予
{
"test_df": {
"test1": 4,
"test2": 6,
"test3": 2,
"test4": 8,
"test5": 7
}
}
如果您从 toJSON()
remove auto_unbox = TRUE
值将在方括号中 [
].
这对我有用,但也许有人想出了一个更方便的解决方案。