ورود

View Full Version : استخراج داده ها از Json



shahab_ksh
دوشنبه 13 اردیبهشت 1400, 15:29 عصر
با سلام خدمت دوستان خروجی Api من در دستور


var RequestResult1 = JsonConvert.DeserializeObject(ResponseString);




به صورت زیر است


{ "ContentEncoding": null, "ContentType": null, "Data": [ { "NationalCode": "4300023580", "FirstName": "طناز", "LastName": "احمدی", "FatherName": "مجيد", "IssueNumber": "9987", "GregorianBirthDate": "9/16/1987 12:00:00 AM", "JalaliBirthDate": "1366/06/25", "GenderTitle": "زن", "EmployeeType": 100343, "GenderCode": 100012, "OrganizationChartId": 45, "AzmoonCode": 160, "PersonId": 0, "EmplymentId": 0, "LastInterdictId": 0, "NationalityCode": 0, "EmployeeTypeTitle": "حق التدريس", "OrganizationTitle": "تست", "NationalityTitle": null, "MobileNumber": "09173000447", "Email": "haniyeh@yahoo.com", "HomeAddress": null, "FieldTitle": null, "TendencyTitle": null, "EducationTitle": null } ], "JsonRequestBehavior": 1, "MaxJsonLength": 2147483647, "RecursionLimit": null }


است چطور می تونم داده ها رو استخراج کنم

از دستور زیر استفاده کردم اما خطا میده


JObject RequestData = RequestResult["Data"].Value<JObject>();
string NationalCode = RequestData["NationalCode"].Value<string>();


خطا



Cannot cast Newtonsoft.Json.Linq.JArray to Newtonsoft.Json.Linq.JToken.


چطور می تونم این مشکل رو حل کنم

مهدی کرامتی
چهارشنبه 22 اردیبهشت 1400, 21:58 عصر
ساده ترین راه اینه که یک کلاس معادل اون آبجکت JSON در سمت برنامه تون داشته باشید.

برای ساخت اون کلاس کافیه اول استرینگ JSON رو در کلیپ بورد کپی کنید، سپس در منوی Edit ویژوال استودیو گزینه Paste As Class رو انتخاب کنید.

موقع Deserialize کردن هم به این صورت عمل کنید:
var RequestResult1 = JsonConvert.DeserializeObject<YourClassName>(ResponseString);
و بجای YourClassName نام کلاس معادل JSON تون رو قرار بدهید.

nunegandom
یک شنبه 17 مرداد 1400, 19:36 عصر
برای کانورت همون که اقای کرامتی فرمود
و برای ایجاد مدل میتونید از این لینک (https://json2csharp.com/) استفاده کنید