Как упорядочить объект js, чтобы при его отправке было возможно несколько двойных кавычек Socket.io

#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);