【问题标题】:Deserialize nested JSON into C#将嵌套的 JSON 反序列化为 C#
【发布时间】:2018-11-15 05:26:22
【问题描述】:

我从如下所示的 API 获取 JSON:

    [
       {
          "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 数组

应该很简单,但由于某种原因我无法弄清楚正确的

我对 Web 开发非常陌生,我正在使用 ASP.NET MVC 5 开发一个 Web 应用程序。我需要反序列化嵌套的 json

【问题讨论】:

  • 您应该查看的 methodJsonConvert.Deserialize&lt;T&gt; 并注意您的 DetailItems 应该是 List&lt;SyncSaveCheckListDetailsItem&gt;
  • @ibubi,提供了非常清晰的json反序列化示例,请理解并按照逻辑实现您的代码。如果您在那里遇到任何问题,请告诉我们
  • 类似问题已在此处得到解答stackoverflow.com/questions/38793151/…

标签: json asp.net-web-api


【解决方案1】:

正如 Ibubi 指出的那样;您应该将 DetailsItem 属性更改为 List&lt;SyncSaveCheckListDetailsItem&gt; 并确实查看 NewtonSoft 将 json 反序列化为对象。你可以找到详情here

此外,这个问题之前被问过多次; for example here.

【讨论】:

  • 非常感谢您
猜你喜欢
  • 1970-01-01
  • 2016-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-20
  • 2020-09-29
  • 1970-01-01
相关资源
最近更新 更多