ranio Ответов: 1

Как избежать обратной косой черты символов из строки json в C#?


Я хочу избежать символов escape-последовательности обратной косой черты из строки json в c#. Я создаю строку json и сериализую ее .

Но я не могу заменить символы escape back slash в ответе даже сейчас
{
"AuthenticateSSOResult": "{\"Reference_No\":\"IB120219100227\",\"Token_No\":\"WPS19063123900013\"}"
}

Что я уже пробовал:

<pre>   var obj = new SSOResponseToken
                           {
                               Reference_No = Convert.ToString(data.Reference_No),
                               Token_No = SSOToken

                           };

                           SSOTokenRespAPI = new JavaScriptSerializer().Serialize(obj);




В настоящее время результат приходит как показано ниже:
{
    "AuthenticateSSOResult": "{\"Reference_No\":\"IB120219100227\",\"Token_No\":\"WPS19063123900013\"}"
}

Попробовал заменить последовательность escape back slash пустой строкой, но не получилось.

F-ES Sitecore

Вероятно, вы устанавливаете свойство "AuthenticateSSOResult" некоторого объекта как SSOTokenRespAPI, которое является строковым представлением вашего объекта, поэтому у вас есть сериализация JSON внутри сериализации JSON, так что внутренняя сериализация имеет эти косые черты, чтобы обозначить, что они являются буквальными кавычками.

В основном проблема заключается в том, что ваш SSOResponseToken сериализуется дважды. Однако вы не опубликовали весь соответствующий код, поэтому трудно сказать, в чем заключается решение.

1 Ответов

Рейтинг:
1

OriginalGriff

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

{
"Name":"abc \"123\" def"
}
Без обратной косой черты они будут рассматриваться как:
{
"Name":"abc "123" def"
}
И строка значения будет принята как "abc ", тогда 123 будет рассматриваться как недопустимый json