【发布时间】:2019-12-24 12:25:54
【问题描述】:
我需要创建以下字符串作为有效负载:
{"url":"http://google.com","number":["123"]}
根据列表 (payload_2) 创建字符串时,我得到以下结果:
{"url":"http://google.com","number":"[\"123\"]"}
问题:
如何从方括号 (payload_2) 中删除外引号?
解决问题的尝试:
# --------------------------------
# Payload from string (this works).
# --------------------------------
payload_1 <- "{\"url\":\"http://google.com\",\"number\":[\"123\"]}"
# --------------------
# Payload from list (does not work, quotations surrounding squared brackets, still there).
# --------------------
payload_2 <- list(
"url" = "http://google.com",
"number" = "[123]"
)
payload_2 <- toJSON(payload_2, auto_unbox = TRUE)
cat(paste0("payload from string: ", payload_1, "\n"))
cat(paste0("payload from list: ", payload_2))
# -----------------------------------------
# Test 1 - Using [noquote] - throws errors.
# -----------------------------------------
number <- "[\"123\"]"
number <- noquote(number)
payload_3 <- list(
"url" = "http://google.com",
"number" = number
)
payload_3 <- toJSON(payload_3, auto_unbox = TRUE)
# Error: No method asJSON S3 class: noquote
结果
来自字符串的负载:{"url":"http://google.com","number":["123"]}
来自列表的有效负载:{"url":"http://google.com","number":"[\"123\"]"}
Payload_3:错误:没有方法 asJSON S3 类:noquote
【问题讨论】:
标签: r json string list payload