Десериализовать вложенный JSON в C # - PullRequest
0 голосов
/ 15 ноября 2018

Я получаю JSON от API, который выглядит следующим образом:

    [
       {
          "CheckListId":"4",
          "Bphase":"k",
          "ActivityID":"2",
          "FloorTypeId":"216",
          "CheckerId":"",
          "columnFooting":"tets",
          "SubActivityID":"52",
          "columnFootingOTHER":"",
          "rejectFlag":"2",
          "Reportingtype":"Column-Floor",
          "Dphase":"",
          "UserID":"34a86e95-be70-4c6e-84b4-90fc2680cb44",
          "dateTimeSpanCre":"11/13/2018 12:00:00 AM",
          "contractID":"45",
          "UserIdAction":"34a86e95-be70-4c6e-84b4-90fc2680cb44",
          "drawingRef":"testing",
          "ChecklistForId":"683,687,688,689",
          "Aphase":"",
          "projectID":"21",
          "BuildingID":"49",
          "status":"p",
          "DetailsItems":[
             {
                "phase":"b",
                "yesNo":"n",
                "ImageName":"",
                "DoerComments":"",
                "UserId":"34a86e95-be70-4c6e-84b4-90fc2680cb44",
                "base64Img":"",
                "CheckersComments":"",

             },
             {
                "phase":"b",
                "yesNo":"n",
                "ImageName":"",
                "DoerComments":"",
                "UserId":"34a86e95-be70-4c6e-84b4-90fc2680cb44",
                "base64Img":"",
                "CheckersComments":"",

             }
          ]
       },
{
....},
{ ....
}
    ]

I have tried a few approaches

    public class SyncSaveCheckListDetailsMaster
    {
        public string UserID;
        public string CheckListId;
        public string projectID;
        public string contractID;
        public string BuildingID;
        public string columnFooting;
        public string drawingRef;
        public string dateTimeSpanCre;
        public string columnFootingOTHER;
        public string ChecklistForId;
        public string Reportingtype;
        public string FloorTypeId;
        public string status;
        public string rejectFlag;
        public string UserIdAction;
        public string CheckerId;
        public string Bphase;
        public string Dphase;
        public string Aphase;
        public string ActivityID;
        public string SubActivityID;
        public List<List<SyncSaveCheckListDetailsItem>> DetailsItems { get; set; }
    }

    public class SyncSaveCheckListDetailsItem
    {
        public string phase;
        public string yesNo;
        public string DoerComments;
        public string CheckersComments;
        public string UserId;
        public string ImageName;
        public string base64Img;

    }

Какой метод я использую для обессоливания этого вложенного массива JSON

Это должно быть просто, но по какой-то причинеЯ не могу понять, правильный

Я очень новичок в веб-разработке, и я занимаюсь разработкой веб-приложения с использованием ASP.NET MVC 5. У меня есть требование десериализации вложенного json

1 Ответ

0 голосов
/ 15 ноября 2018

Как отмечено Ибуби ;вы должны изменить свойство DetailsItem на List<SyncSaveCheckListDetailsItem> и действительно посмотреть на NewtonSoft, чтобы десериализовать json в объект.Вы можете найти подробности здесь .

Кроме того, этот вопрос задавался несколько раз ранее; например здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...