如何删除这个简单的 tibble 到 JSON 转换代码块中的额外括号?

问题描述 投票:0回答:1

如果我运行本文底部的代码,我会得到下面的 json 文本。我如何摆脱所有

[
]

输出:

{
    "a": [
      {
        "second": 1
      },
      {
        "second": 2
      }
    ],
    "b": [
      {
        "second": 1
      },
      {
        "second": 2
      }
    ]
  } 

代码:

tibble::tibble(
  first = c("a","a","b","b"),
  second = c(1,2,1,2)
)|>
  tidyr::nest(.by = first)|>
  tidyr::pivot_wider(
    names_from = first,
    values_from = data
  )|>
  jsonlite::unbox()|>
  jsonlite::toJSON(pretty = T,auto_unbox = T)
r json jsonlite
1个回答
0
投票

您可以在命令末尾添加一行带有

gsub
的内容,即

tibble::tibble(
    first = c("a", "a", "b", "b"),
    second = c(1, 2, 1, 2)
) |>
    tidyr::nest(.by = first) |>
    tidyr::pivot_wider(
        names_from = first,
        values_from = data
    ) |>
    jsonlite::unbox() |>
    jsonlite::toJSON(pretty = T, auto_unbox = T) |>
    gsub(pattern = "\\[|\\]", replacement = "")

你将获得

{
    "a":
      {
        "second": 1
      },
      {
        "second": 2
      }
    ,
    "b":
      {
        "second": 1
      },
      {
        "second": 2
      }

  }
© www.soinside.com 2019 - 2024. All rights reserved.