Вставка большого строкового JSON в качестве входных данных для мутации GRAPHQL

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

Я получаю много ошибок: Вставка большого строкового JSON в качестве входных данных для мутации GRAPHQL

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

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
0
1 994
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Итак, строковое значение, подобное этому:

{"key": "value"}

нужно экранировать так:

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

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

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

Это же правило применяется и к строкам, которые вы отправляете в качестве переменных, но это связано с правилами синтаксиса JSON, а не с правилами GraphQL. Вы можете прочитать больше об экранировании символов внутри строк в файле спец..

Другие вопросы по теме