Возможность избежать двойные кавычки в последовательности в c#

Я знаю, что это было покрыто много времен, но у меня все еще есть проблема со всеми решениями.

Я должен построить последовательность, чтобы послать в анализатор JSON, которому нужны кавычки в ней. Я попробовал эти формы:

string t1 = "[{\"TS\"}]";
string t2 = "[{" + "\"" + "TS" + "\"" + "}]";
string t3 = @"[{""TS""}]"; 
Debug.Print(t1);
Debug.Print(t1);
Debug.Print(t1);

Заявление отладки показывает его правильно [{"TS"}], но когда я смотрю на него в отладчике и самое главное когда я посылаю последовательность в свою серверную сторону json, анализатор, имеет символ ESC в нем: "[{\\"TS \"}]"

Как я могу избавиться от символов ESC в фактической последовательности?

1
nl ja de
Даже когда зафиксировано, чтобы напечатать каждую последовательность они все - то же самое - у них все еще есть символ ESC
добавлено автор scoleman2272, источник
There' s ничто неправильно с кодом вы отправили. Проблема в другом месте.
добавлено автор Kendall Frey, источник
Это не предоставляет ответ на вопрос. Чтобы критиковать или просить разъяснение от автора, оставьте комментарий ниже их почты.
добавлено автор Dave Clemmer, источник
BTW, that' s недействительный JSON.
добавлено автор SLaks, источник
Вы уверенный это there' s никакая ошибка в вашем анализаторе JSON? Ваш код выглядит хорошо во всех трех случаях.
добавлено автор Mir, источник
Ваш пример кода неправильно? Ваш Отладка. Печать заявления все использование t1.
добавлено автор Ed Chapel, источник
Все ваши печати отладки находятся на t1.
добавлено автор mcassano, источник

1 ответы

Заявление отладки показывает его правильно [{"TS"}], но когда я смотрю на него в отладчике и самое главное когда я посылаю последовательность в мой серверная сторона json анализатор, имеет символ ESC в нем: " [{\\"TS \"}]"

С точки зрения отладчика это будет всегда показывать сбежавшую версию (это так, вы, как разработчик, знаете точно, что стоимость последовательности). Это не ошибка. Когда вы пошлете его в другую.Net систему, это снова покажет сбежавшую версию с точки зрения отладчика. Если вы производите стоимость, (Ответ. Напишите() или Пульт. WriteLine ()) вы будете видеть, что версия, которую вы ожидаете, будет там.

Если вы подчеркнете переменную (от отладчика) и выберете dropdown рядом со значком лупы и избранным "текстом Visualizer то", вы будете видеть, как это показывает в простом тексте. Это может быть тем, что вы ищете.

За ваши комментарии я хотел предложить, чтобы вы также смотрели, как вы преобразовываете свою последовательность в в байты. Вы хотите удостовериться, что вы кодируете свои байты в формате, который может быть понят под другими машинами. Удостоверьтесь, что вы преобразовываете свою последовательность в байты, используя команду следующим образом:

System.Text.Encoding.ASCII.GetBytes(mystring);

У меня есть подлое подозрение, что вы посылаете разрядное представление самой последовательности вместо закодированной версии.

3
добавлено
Проблема состоит в том, что на серверной стороне (Linux), получает последовательность с символом ESC и doesn' t понимают его
добавлено автор scoleman2272, источник
На серверной стороне We' ре, смотрящее на апачский Доступ, регистрируется, чтобы видеть поступающие данные HTTP. На клиентской стороне I' m строительство пакета HTTP вручную и отправка через гнездо.
добавлено автор scoleman2272, источник
Жаль о форматировании, can' t выясняют как к коду формата в комментариях: натяните t1 =" [{\\"TS \"}]"; натяните RequestData =, "ДОБИРАЮТСЯ "+ t1; //я добавляю, что заголовки здесь//Открывают связь это. _ Гнездо. Соединитесь ();//Отсылает запрос это. _ Гнездо. Пошлите (RequestData);//Усилия возвращенные данные натягивают ResponseData =""; в то время как (это. _ Гнездо. IsConnected || это. _ Гнездо. BytesAvailable> 0) ResponseData + = это. _ Гнездо. Получите (); это. _ Гнездо. Близко ();
добавлено автор scoleman2272, источник
Тогда любой you' ре не правильно осмотр последовательности на серверной стороне или вашей проблемы находится в том, как последовательность посылают (который isn' t показанный), потому что код здесь очень хорошо.
добавлено автор Servy, источник
Нам нужны еще некоторые детали тогда. Мы должны знать, как машина Linux потребляет ваши данные. Что вы показали нам, к настоящему времени весьма правильно.
добавлено автор Scott Stevens, источник
"I' m строительство пакета HTTP вручную" это вероятно, где проблема существует. Снижение, которые кодируют на нас.
добавлено автор Scott Stevens, источник
Это маловероятно область с проблемой. Проблема находится на сервере с тем, как вы посылаете данные. Как вы преобразовываете в последовательную форму свою последовательность? Вы, вероятно, хотите удостовериться, что вы делаете что-то вроде этого: "Система. Текст. Кодирование. ASCII.GetBytes ()"
добавлено автор Scott Stevens, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot