Как я могу добиваться того, чтобы моя страница ASP.NET Веб Api возвратил JSON вместо XML используя chrome?

Используя нового ASP.NET Веб API в Chrome я вижу XML.

  • Как я могу менять это для того, чтобы под меня возвратил JSON для того, чтобы он смог видеть это в моем браузере?.
  • Я думаю, что это единственное сообщение заголовка просьбы: я в них верно?

Первоначальный вопрос: How do I get ASP.NET Веб API to return JSON instead of XML using Chrome?

3
задан 23.05.2017, 15:39
2 ответа

Ok, это, как который у тебя был стеллаж стаканов воды, и ты хотел berber воду, твои выборы многообразные.

Я думаю, что лучшее состоит в том, чтобы ты подчинил себе в стандарт как ответ, это, продолжая начало мощи (закон Postel):

быть консерватором, в котором ты делаешь / посылаешь, быть либералом, в котором ты соглашаешься других.

Шрифт 1 (Английский язык) и Шрифт 2 (испанец)

Исходя из этого, я думаю, что он рекомендуемый, что с твоего API ты принял решение посылать формат, и что твой клиент (что-нибудь в этом роде, что завершает API, смогло манипулировать этим). Если ты хочешь послать многообразные форматы, будь хорошо, но ты сообщаешь твоему клиенту, который через headers скажет тебе, какая версия благосклонно принятого ответа, как сказал JosEduSol.

Другие способы, которых ты это можешь добиваться, - следующие:

Добавляя ответ назначенного по умолчанию JSON. Добавь следующее в WebApiConfig.cs

config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));

Перемещая ответ XML. Это мой излюбленный способ это делать

config.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

Потом ты можешь играть с JSON, который ты возвращаешь, как решение, ли будет это CamelCase, или если он будет identado, например:

config.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

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

1
ответ дан 01.12.2019, 08:13

Завись от браузера, например с Internet Explorer назначенный по умолчанию формат - JSON, но как ты заметил с Chrome назначенный по умолчанию формат, - XML.

возможная Одна soluciГіn состоит в том, чтобы использовать какой-то инструмент как Postman (extensiГіn Chrome) или Fiddler и конфигурировать заголовок:

Accept: application/json 

, чтобы получать ответ как JSON.

Например, в Postman: introducir la descripción de la imagen aquí

2
ответ дан 01.12.2019, 08:13

ASP.NET ВЕБ API, по умолчанию возврати XML

Для того, чтобы ответ был в формате JSON, издает файл App_Start \WebApiConfig.cs En этот файл, в Register добавлять как первая линия кода следующее:

config.Formatters.Remove(config.Formatters.XmlFormatter);

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

0
ответ дан 03.12.2019, 23:16