Sachin11089 Ответов: 2

Попытка вернуть набор данных из веб-api в ASP.NET


Привет Ребята,

Я пытаюсь изучить веб-api самостоятельно, для этого же я разработал очень простое приложение для входа в систему. asp.net и средний layar как веб-api для взаимодействия с базой данных.
Все работает нормально до тех пор, пока не будет получен ответ на стороне клиента. я конвертирую набор данных в JSON в asp.net и на стороне клиента(ASP.net приложение) полученная строка JSON не имеет надлежащего формата(как показано ниже).

"{\r\n \"таблица\": [\r\n {\r\n \"результат\": \"1\"\r\n }\r\n ],\r\n \"Таблица 1\": [\r\n {\r\n \"результат\": \"2\"\r\n }\r\n ]\r\n}"


Поэтому прошу вас предложить мне правильное решение, чтобы я мог получить JSON в соответствии с приведенным ниже .


"{
"Стол":
[
{"Результат":"1"}
],
"Таблица 1":
[
{"Результат":"2"}
]
}".


Ожидается ваше драгоценное возвращение, пожалуйста, сделайте необходимое.

Заранее спасибо.

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

Я попытался удалить \\ с помощью функции replace в c#, но она не работает в соответствии с требованиями.

Richard MacCutchan

Убедитесь, что отправляющая часть форматирует его правильно.

F-ES Sitecore

Эти символы типа "\t" на самом деле не находятся в тексте, это просто способ отладчика сообщить вам, что есть вкладка, новая строка и т. д. Пока вы правильно десериализуете свой json, он все равно будет работать.

2 Ответов

Рейтинг:
1

Gerry Schmitz

Вам нужно читать "строки", а не прямой "текст".

Прямой текст поддерживает возврат каретки и перевод строк; "чтение в виде строк" возвращает коллекцию строк.

c# - в чем разница между файлами.ReadAllLines() и File.ReadAllText()? - переполнение стека[^]


Рейтинг:
0

S.V.Aaditya.S.V

Привет,

Я столкнулся с аналогичной проблемой, когда набор данных сериализуется в JSON строка и отправленный в качестве ответа, и на стороне клиента он был получен в том же формате, что и в запросе. Итак, я непосредственно отправил набор данных в ответ и работал.
Вот что я сделал ниже.

Установите тип возврата API ActionMethod равным

IHttpActionResult

Вместо того чтобы возвращать некоторую строку, используйте ниже
return Ok(YourDataSet);


Самое главное, установите нижеприведенную строку в файле WebApiConfig.cs в методе Register в папке App_Start...
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new System.Net.Http.Formatting.RequestHeaderMapping("Accept", "text/html", StringComparison.InvariantCultureIgnoreCase, true, "application/json"));


(Приведенная выше строка в конфигурационном файле используется для форматирования вывода в формате результата JSON).

Надеюсь, что это решение поможет вам или кому-то, кто сталкивается с подобной проблемой.
Пожалуйста, поправьте меня, если это неправильно или не следует использовать.
Спасибо.