Веб-служба Wcf возвращает данные в формате json
Привет
Я создал веб-сервис WCF с помощью c#, и он возвращает данные в формате json. Мой код выглядит следующим образом:
public string SampleService(Stream data) { string sJSONdata = ""; StreamReader reader = new StreamReader(data); sJSONdata = reader.ReadToEnd(); //'now convert the JSON into a data table DataTable dt = GetJSONTable(sJSONdata); dt.TableName = "Customer"; Dictionary<string, string> dict = new Dictionary<string, string>(); foreach (DataRow rs in dt.Rows) { dict = new Dictionary<string, string>(); foreach (DataColumn col in dt.Columns) { dict.Add(col.ColumnName, rs[col].ToString()); } } return (new JavaScriptSerializer().Serialize(dict)); }
И я получаю следующий результат:
{ "SampleServiceResult": "{\"Id\":\"1\",\"имя\":\"xyz\",\"электронная почта\":\"xya@test.com\"}" }
Я хочу получить результат, как показано ниже:
{ "SampleServiceResult": {"идентификатор":"1","имя":"АБВ","письмо":"xya@test.com"} }
В выводе он добавляет Escape-символ "\" в выводе. Как я могу удалить это и вернуть действительный json в выводе.
Спасибо
Что я уже пробовал:
Я пытался заменить"\", но это не работает.
Karthik_Mahalingam
используете ли Вы данные на веб-странице (javascript) ?
Rajesh Pandya
В IOS и Android
Karthik_Mahalingam
это не проблема, это просто экранирующий символ, он не повлияет на данные
Rajesh Pandya
Да, это не повлияет на данные..но для разбора json ему нужно удалить экранирующий символ
Karthik_Mahalingam
как вы разбираете данные, покажите код
Kornfeld Eliyahu Peter
- Нет! Тебе это не нужно! Используйте приличную библиотеку для синтаксического анализа JSON, и все будет хорошо!!!
Rajesh Pandya
Для этого я использую машинный код.
Kornfeld Eliyahu Peter
Где вы исследуете результат? В отладчике?
(Кстати - это валидный JSON)
Rajesh Pandya
Я проверил выход в postman и в устройстве ios.
Richard MacCutchan
Вы уверены, что это не делается вашей службой?
Richard MacCutchan
Этот код никогда не сработает. Вы создаете новый словарь для каждой строки данных, поэтому вы всегда будете сериализовывать только данные из последней строки вашей таблицы.
Rajesh Pandya
в настоящее время моя примерная таблица имеет только одну строку.
Richard MacCutchan
Ну, если у него когда-нибудь будет больше одной строки, вы не получите правильных результатов. Каково именно содержание ваших выборочных данных?