Эффективный метод для работы с 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
}]
}
- Каков наилучший способ преобразовать это в объект, чтобы я мог применить различные преобразования 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.