Мне нужно создать эту строку с точным содержимым, чтобы использовать ее в клиенте API REST.
body =
"{
\"epic\": \"sweden\",
\"direction\": \"BUY\"
}"
Я уже использую решение, создавая строку без вызова переменных.Я сейчас ищу построить строку с вводом из переменных.
Мне нужно решение, которое не добавляет больше пакетов R.Желательно с минимальной сложностью для хорошего обзора.Я надеюсь избежать длинных шаблонов регулярных выражений (но если регулярное выражение является хорошим рекомендуемым способом продвижения вперед, я готов это рассмотреть).
В попытке 1 и попытке 2 я намеренно исключил фигурные скобки, чтобы минимизировать вопрос и его код.Однако эти фигурные скобки должны быть частью решения.
Пока предпринимаются попытки:
Попытка-1 (решить с помощью пасты):
epic1 <- paste0("\"", "sweden")
direction1 <- paste0("BUY", "\"")
create.body1 <- c(epic1, "," ,direction1)
Результат:
"\"sweden" "," "BUY\""
Проблема: У каждого предоставленного ввода переменной есть кавычка.Кроме того, escape-символы добавляются только как обертка вокруг всей строки, а не по мере необходимости, для каждого ключа и значения.
Attemp-2 (вырезать кавычки с помощью [noQuote]):
epic2 <- paste0("\"", "sweden")
direction2 <- paste0("BUY", "\"")
create.body2 <- noquote(c(epic2, "," ,direction2))
Результат:
"sweden , BUY"
Проблема: необходимые экранирующие символы, обратная косая черта, пропали.
Attemp-3 (pre-construct [пары ключ / значение] до построения строки тела):
# Curly brackets.
curly.bracket.left <- "{"
curly.bracket.right <- "}"
# Epic build [key/pair]
epic_key <- "\"epic\": "
epic_value <- "\"sweden\""
epic_pair <- c(epic_key, epic_value)
# Direction build [key/pair]
direction_key <- "\"direction\": "
direction_value <- "\"BUY\""
direction_pair <- c(direction_key, direction_value)
# Construct body string.
build.body <- c(
curly.bracket.left,
epic_pair,
direction_pair,
curly.bracket.right
)
Результат:
"{" "\"epic\": " "\"sweden\"" "\"direction\": " "\"BUY\"" "}"
Проблема: в строке тела может быть много цитат.Все [\ "] все в порядке.