Эффективный метод для работы с JSON

Я получаю этот ответ JSON:

{
    "status": "Ok",
    "total": 105373,
    "result": [
        {
            "id": 668839,
            "cn": "A-12157-68812",
            "pD": "09-12-2012",
            "cCD": "06-05-2012",
            "cT": "PERM",
            "fN": "COMCAST CABLE COMMUNICATIONS, LLC",
            "s": "NJ",
            "cR": "Certified",
            "pT": "ENGINEER 3",
            "vC": 6,
            "cddt": "html"
        },
        {
            "id": 725695,
            "cn": "A-12361-25668",
            "pD": "05-28-2013",
            "cCD": "12-26-2012",
            "cT": "PERM",
            "fN": "L'ONVIE INC.",
            "s": "NY",
            "cR": "Certified",
            "pT": "Biochemist",
            "vC": 6,
            "cddt": "html"
        },
        {
            "id": 0,
            "cn": "A-11199-93239",
            "pD": "05-31-2012",
            "cCD": "07-18-2011",
            "cT": "PERM",
            "fN": "ROCKWELL AUTOMATION, INC.",
            "s": "PR",
            "cR": "Certified",
            "pT": "Marketing Managers",
            "vC": -1
        }]
}
  1. Каков наилучший способ преобразовать это в объект, чтобы я мог применить различные преобразования LINQ для запроса значимых данных?

Каков эффективный способ сделать это?

Должен ли я создавать классы, такие как:

public class Status {
                        string Status {get; set;}
                        int Total {get; set;}
                        IEnumerable<Result> Results {get; set;}
                        }



public class Result {
                    string Id {get; set;}
                    ..................
                   }

А потом разбираться в картировании / кастинге?

2 ответа

Если вы используете последнюю версию Visual Studio, вы можете использовать Правка> Специальная вставка> Вставить JSON как классы. Это сэкономит вам массу времени:)

Вам нужно будет создавать свои собственные классы, если вы делаете что-то большее, чем простые операции с данными. Вы можете переименовать поля из Json в более подходящие имена, используя атрибуты данных.

Это зависит от того, какой десериализатор вы используете - Json.net или встроенную версию.net.

Попробуйте выполнить поиск по dataContract и dataMember, если вы используете встроенный десериализатор.net или jsonProperty, если вы используете json.net

Попробуйте Json.NET. Проверьте это документы о запросах LINQ. Вы даже можете использовать Json.NET для автоматического сопоставления JSON с объектами.NET.

Другие вопросы по тегам