#javascript #json #parsing #socket.io #stringify
#javascript #json #синтаксический анализ #socket.io #stringify
Вопрос:
Ну, я думаю, основная проблема определена в названии, но есть некоторая специальная информация: я пытаюсь передавать события в сокет.io api. Для части eventtype это работает нормально, но при использовании JSON.stringify в части тела пакета (данные события) (которая должна быть в этом формате: "{"msg":"test"}"
), она возвращает только эту недопустимую строку: "{"msg":"test"}"
. Я также пытался использовать одинарные кавычки вместо двойных, но сервер их не принимает, поэтому я предполагаю, что у него есть пользовательский анализатор для этих строк.
Если у кого-нибудь есть идея, что делать, я был бы очень рад услышать ваше мнение.
Комментарии:
1. Я не понимаю, как
JSON.stringify
или какая-либо функция может возвращать недопустимую строку. Единственный способ создать недопустимую строку — ввести ее непосредственно в код.2. Итак, вам нужно будет экранировать двойные кавычки косыми чертами? Это также означало бы экранирование косых черт двойными косыми чертами. Это может работать следующим образом: str.replace(», ‘\’). заменить(‘»‘, ‘»‘)
3. ну, я имею в виду, что вторая двойная кавычка определяет строку, поэтому часть после нее недопустима.
Ответ №1:
Вы можете получить свой результат путем двойного упорядочения.
const data = {
msg: 'test'
};
const stringified = JSON.stringify(data);
const doubleStringified = JSON.stringify(stringified);
console.log(doubleStringified);