【发布时间】:2021-11-11 08:19:57
【问题描述】:
需要帮助,我只是用 R Plumber 创建 API,我只是希望 Result Json 是这样的
不是这样的
以下是我的 R Plumber 脚本
library(plumber)
library(jsonlite)
#* @get /nested_json
#* @serializer unboxedJSON
function() {
main_info <- data.frame(
Name = "John",
Address = "Stret No. 1",
Point = "600"
)
reason_info <- data.frame(code = c('AAA', 'BBB', 'CCC', NA, 'EEE'),
descriptiom = c('low value of point A', 'low value of point B', 'low value of point C', NA, 'low value of point D') )
main_info[1, "reason"][[1]] <- list(reason_info)
final_output <- as.list(main_info)
final_output
}
非常感谢您的任何建议
更新
@deschen 的替代解决方案正好解决了这个问题,我创建 Web 应用程序的队友可以使用这个解决方案。
替代解决方案如下:
{
"Name": "John",
"Address": "Stret No. 1",
"Point": "600",
"reason": [
{
"code": "AAA",
"description": "low value of point A"
},
{
"code": "BBB",
"description": "low value of point B"
},
{
"code": "CCC",
"description": "low value of point C"
},
{
"code": null,
"description": null
},
{
"code": "EEE",
"description": "low value of point D"
}
]
}
【问题讨论】:
-
我没有立竿见影的解决方案,但在过去的一段时间里,我已经尝试过使用此类 API 结构并出错。因此,就您而言,这完全是关于如何将您的主要信息和原因信息组合到列表列表中。我提供了一些代码作为答案,虽然它没有按你的意愿工作,但它可能会给你一些关于如何继续的提示和想法。
-
非常感谢您的解决方案,我只需添加 drop_na() 即可删除具有 NA 的特定行
-
很好奇,您是否有任何理由希望 JSON 代码看起来与此 API 文档中的不同?我的意思是如果它应该用于相同的目的,那么代码应该看起来像文档指定的那样,不是吗?
-
所以我在 R 中创建了一些计算引擎...并将由我的朋友构建的 Web 应用程序(用户界面)中的 API 调用...我的朋友想要 Json 格式,如下所示超出预期......现在他已经确认将使用您解决方案中的格式
-
所以我提供的代码确实解决了你的问题?如果是这样,您可能不会接受这个答案,并且可能还会更新您的问题,以便这个替代解决方案是可以接受的。
标签: r json api jsonlite plumber