Вставка большого строкового JSON в качестве входа в мутацию GRAPHQL - PullRequest
0 голосов
/ 19 мая 2019

Я получаю большой строковый JSON от клиента.Я хотел бы использовать этот JSON для создания элементов в моей БД.У меня есть мутация, которая получает этот Json как строку.Внутри мутации я разбираю json и затем использую его для заполнения моей БД.Я получаю сообщение об ошибке при попытке выполнить мутацию в Graphiql.

Я получаю много ошибок: enter image description here

Эта строка является обычной строкой JSON, котораяЯ получаю от клиента при использовании JSON.stringify (obj)

1 Ответ

2 голосов
/ 19 мая 2019

GraphQL устраняет строковые литералы с помощью двойных кавычек (").Если вам нужно использовать строковый литерал с одним или несколькими символами двойной кавычки внутри него, вам нужно правильно экранировать эти символы, вставляя обратную косую черту (\) перед каждым.Если вы этого не сделаете, GraphQL обрабатывает двойную кавычку внутри строки как терминатор для всей строки, и обычно следующий символ в вашей строке заканчивается синтаксической ошибкой.

Таким образом, строковое значениенапример:

{"key": "value"}

необходимо экранировать следующим образом:

{\"key\": \"value\"}

как литерал внутри вашего документа GraphQL, в итоге он выглядит следующим образом:

"{\"key\": \"value\"}"

Это правило также применимо к строкам, которые вы отправляете как переменные, но это связано с правилами синтаксиса JSON, а не с правилами GraphQL.Подробнее о экранировании символов внутри строк вы можете прочитать в spec .

...