Попросите конечную точку ASP.NET принять запрос с объектом JSON неизвестного типа.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Попросите конечную точку ASP.NET принять запрос с объектом JSON неизвестного типа.

Сообщение Anonymous »


Я хотел бы принять объект известного типа, одним из свойств которого является просто Record. В настоящее время единственный способ заставить это работать — заставить моего клиента JSON.stringify свойство, а затем я смогу его десериализовать без проблем. Проблема в том, что в этом нет необходимости ни в одной другой платформе, которую я когда-либо использовал, поэтому я бы хотел, чтобы клиент просто передавал JSON.

Вот что я хотел бы передать, притворяясь, что у нас есть события, которые мы POST о конкретных объектах в системе:

{ "eventType": "создано", "objectId": "cb01e673-3835-44a8-a803-7cbfd437f0e2", "Детали события": { "anyKey": "someValue", "someArray" : ["нет проблем!", "нет причин, по которым это не должно работать!"], «некоторый вложенный объект»: { "anyNestedKey": "никогда не должно быть проблемой" } } } Вот мой объект запроса:

публичный класс ObjectEvent { общедоступная строка? ObjectId {получить; набор; } общедоступная строка? ТипСобытия {получить; набор; } общественная динамика? EventDetails {получить; набор; } } Проблема в том, что когда я получаю EventDetails, это выглядит так:

Request ValueKind = Object : "{ "что угодно": "сделай это" }" Это означает, что теперь это JsonElement, но это не так. Это был просто объект Json, переданный от клиента. Я ВИДЕТЬ объект, но не могу представить его в динамике.

Опять же, если я заставлю всех сериализовать свойство «EventDetails» в виде строки перед отправкой POST, я могу переключить «dynamic? EventDetails» на «string? EventDetails» и использовать Newtonsoft.Deserialize, и это работает нормально, но на самом деле это не так. приемлемо, когда люди используют Curl и Postman для доступа к этому или пишут шуточные тесты. Они должны иметь возможность передавать объект, а .NET должен его принимать, что вроде и есть, но не так, как я могу использовать.

Есть предложения? Заранее спасибо.
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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