System.Text.Json - Не удалось преобразовать значение JSON в System.String. - PullRequest
0 голосов
/ 29 октября 2019

У меня есть следующее json, отправляемое в api

{
     "Id":22,
     "UserId":22,
     "Payload":{
        "Field":"some payload value"
        ...more unknown field/values go here
     },
     "ContextTypeId":1,
     "EventTypeId":1,
     "SessionId":1
}

Я хотел бы сопоставить его со следующим:

  public class CreateTrackItem : IRequest<int>
    {  
        public int Id { get; set; }
        public int UserId { get; set; }

        public string Payload { get; set; }
        public int ContextTypeId { get; set; }
        public int SessionId { get; set; }
        public int EventTypeId { get; set; }
    }

Когда сопоставлено свойство Payload не удаетсячто он не может отобразить json в строку, я просто хочу, чтобы Payload был string версией json (перейдет в поле jsonb в postgres)

IЯ использую .NET Core 3.0 и предпочитаю использовать встроенный System.Text.Json, если это возможно, перед переключением на Newtonsoft.

1 Ответ

0 голосов
/ 30 октября 2019

Вы можете использовать тип объекта вместо строки. Или используйте тип JToken из Newtonsoft, как Райан уже прокомментировал выше.

public object Payload {get;установлен;}

 public class CreateTrackItem : IRequest<int>
{  
    public int Id { get; set; }
    public int UserId { get; set; }

    public object Payload { get; set; }
    public int ContextTypeId { get; set; }
    public int SessionId { get; set; }
    public int EventTypeId { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...