Поправить ASP.NET WEB API, чтобы не использовать Newtonsoft.jsonC#

Место общения программистов C#
Ответить
Anonymous
 Поправить ASP.NET WEB API, чтобы не использовать Newtonsoft.json

Сообщение Anonymous »

Я нахожусь в процессе обновления одной из наших систем для использования System.text.json , а не newtonsoft.json .
У меня есть класс данных , в котором я поправнул на использование System.text.json . Это обрабатывает вызовы из моделей представления UI MVVM WPF, чтобы получить данные модели через веб -API. Все вызовы в API Используйте приложение/json Тип носителя.

Код: Выделить всё

HttpResponseMessage httpresponse = client.PostAsync("api/data", new StringContent(SerialiseToJson(request), Encoding.UTF8, "application/json")).Result;
my dataController post Метод в API затем принимает полученный запрос и передает его обратно, на стороне сервера, к классу данных для дальнейшей обработки.

Код: Выделить всё

public HttpResponseMessage Post(Data.Request request)
{
HttpResponseMessage httpresponse = null;
Data.Response response = null;

try
{
if (request.Type == Data.Request.RequestType.Get)
response = Data.GetData(request);
else
{
response = Data.UpdateData(request);

if (Common.ReportProgressDetailSubscribedTo)
{
if (response.Status == Data.Response.ResponseStatus.Error)
Common.ReportProgressDetail(string.Format("UpdateData Response.Status={0}\r\nResponse.ErrorMessage={1}\r\nResponse.ErrorDetails={2}", response.Status.ToString(), response.ErrorMessage, response.ErrorDetails));
else
Common.ReportProgressDetail(string.Format("UpdateData Response.Status={0}", response.Status.ToString()));
}
}

httpresponse = Request.CreateResponse(HttpStatusCode.OK, response);
}
catch (Exception ex)
{
response = new Data.Response("Unexpected error", ex.Message);
httpresponse = Request.CreateResponse(HttpStatusCode.OK, response);
Common.ReportProgress(string.Format("ERROR: {0}", response.ErrorDetails));
}

return httpresponse;
}
Теперь, обновляя данные Data для использования System.text.json , когда я десериализую внутренние свойства запроса , я ожидаю, что они будут typeof (jsonelement) , однако, я нахожу, что они типа (Newtonsoft.json.linq.jobject)
Эта ссылка предлагает создание сайта MVC с простыми контроллерами, однако именно здесь я борюсь. Всякий раз, когда я пробую что -то, необходимые пакеты Nuget включают Newtonsoft.
Я пытаюсь построить это в .net 4.8, поскольку это соответствует уровню остальной части системы. Поскольку Application/json является стандартным форматом, который должен быть в состоянии читать как Newtonsoft.json , так и System.text.json , я не понимаю, почему это не может быть достигнуто. System.text.json перед передачей моего класса Data . Тем не менее, это добавит дополнительную обработку и сложность.
Конечно, есть лучший способ?

Подробнее здесь: https://stackoverflow.com/questions/796 ... nsoft-json
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»