Member 12794117 Ответов: 1

Десериализация вложенного json в объекты C# и доступ к объектам


Привет,

Я очень новичок в веб-разработке и разрабатываю веб-приложение с помощью ASP.NET MVC 5. у меня есть требование десериализовать строку json и сохранить значения в объектах C#

Вот как выглядит мой JSON
{
  "spellCheckQuery": "abc*",
  "searchStatus": "OK",
  "results": [
    {
      "id": "Enterprise 1 ",
      "attributes": [
        {
          "value": "Vertical",
          "id": "name",
          "label": "Name"
        },
        {
          "value": "Logical grouping of  products based on the physical properties and delivery mechanism of the product.  Verticals include: O ",
          "id": "infa_description",
          "label": "Description"
        }
      ],
      "fragments": [
        {
          "fragments": [
            "abc"
          ],
          "attrId": "name"
        },
        {
          "fragments": [
            "abc"
          ],
          "attrId": "infa_description"
        }
      ],
      "categoryIds": [
        "Enterprise "
      ]
    },
    {
      "id": "Enterprise 2",
      "attributes": [
        {
          "value": "Logical grouping of products based on patient condition. The 11 Franchises include",
          "id": "infa_description",
          "label": "Description"
        },
        {
          "value": "Franchise",
          "id": "name",
          "label": "Name"
        }
      ],
      "fragments": [
        {
          "fragments": [
            "abc"
          ],
          "attrId": "name"
        },
        {
          "fragments": [
            "abc"
          ],
          "attrId": "infa_description"
        }
      ],
      "categoryIds": [
        "Enterprise"
      ]
    }
  ],
  "originalQuery": "abc*",
  "resultCount": 2,
  "categoryDetail": [
    {
      "id": "Enterprise",
      "path": [
        "Enterprise Business Glossary",
        "abc"
      ],
      "description": [
        "abc Enterprise Business Glossary",
        "some text goes here"
      ]
    }
  ],
  "processingTime": 45
}



Ниже приведены классы, которые я создал

public class Attribute
{
    public string value { get; set; }
    public string id { get; set; }
    public string label { get; set; }
}

public class Fragment
{
    public List fragments { get; set; }
    public string attrId { get; set; }
}

public class Result
{
    public string id { get; set; }
    public List attributes { get; set; }
    public List fragments { get; set; }
    public List categoryIds { get; set; }
}

public class CategoryDetail
{
    public string id { get; set; }
    public List path { get; set; }
    public List description { get; set; }
}

public class RootObject
{
    public string spellCheckQuery { get; set; }
    public string searchStatus { get; set; }
    public List results { get; set; }
    public string originalQuery { get; set; }
    public int resultCount { get; set; }
    public List categoryDetail { get; set; }
    public int processingTime { get; set; }
}


Я использовал приведенный ниже код для десериализации:
RootObject dobj = JsonConvert.DeserializeObject



Мой вопрос заключается в том, что json имеет 2 результата подсчета с идентификаторами enterprise 1 и Enterprise 2 соответственно.Я хочу отобразить эти два результирующих набора в качестве выходных данных. Как я могу этого достичь? Любая помощь будет очень признательна.

Что я уже пробовал:

RootObject dobj = JsonConvert.DeserializeObject

1 Ответов

Рейтинг:
11

F-ES Sitecore

dobj. results должен представлять собой список из двух результирующих объектов, чтобы вы могли использовать его в качестве источника данных для своих объектов или показывать их в виде

@foreach(var result in Model.results)
{
    // your html here
    <h1>@result.id</h1>
}


Member 12794117

Эта работа . Спасибо