View Full Version : خواندن اطلاعات از یک متغییر از نوع var
ali.sheibani1368
چهارشنبه 20 تیر 1403, 01:34 صبح
سلام دوستان عزیز من مبتدی هستم
میشه بفرمائید با توجه به کد زیر اطلاعات وارد شده در متغییر VAR چجوری باید در یک آرایه ریخته بشه یا مثلا در یک DataGraid
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("x-api-key", "agHx98VQPnLgbejgSyvHPxwS1192EXM9TS6BELyXjxI8GD1PbN lm7i1Yw9HVzEx1");
var response = await httpClient.GetAsync("https://api.sms.ir/v1/receive/live?pageNumber=1&pageSize=100");
var result = await response.Content.ReadAsStringAsync();
155858
ممنون میشم کمکم کنید
_behnam_
چهارشنبه 20 تیر 1403, 03:34 صبح
سلام.
راه منطقی سایت یک کلاس از با مشخصات مقدار برگشتی وب سرور هست.
باید با توجه به JSON دریافتی از وب سرور یک کلاس بسازید و بعد Deserialize کنید و نتیجه رو توی کلاس بریزید. مرحله بعد کلاس مورد نظر رو به دیتاسورس گرید ویو پاس بدید.
مثال زیر از وب سایت newtonsoft هست.
اگر مقدار var برابر با زیر باشه
string json = @"{
'Email': 'james@example.com',
'Active': true,
'CreatedDate': '2013-01-20T00:00:00Z',
'Roles': [
'User',
'Admin'
]
}";
باید به شکل زیر ازش کلاس بسازید.
public class Account
{
public string Email { get; set; }
public bool Active { get; set; }
public DateTime CreatedDate { get; set; }
public IList<string> Roles { get; set; }
}
و رشته JSON رو به آبجکت تبدیل کنید.
Account account = JsonConvert.DeserializeObject<Account>(json);
Console.WriteLine(account.Email);
لینک منبع (https://www.newtonsoft.com/json/help/html/deserializeobject.htm)
موفق باشید .
ali.sheibani1368
چهارشنبه 20 تیر 1403, 11:25 صبح
سلامجدد
اگر ملاحظه بفرمائید نتیجه ای که در var result بود رو داخل textbox1 ریختم
حالا می خوام مقدار mobile و messageText رو تفکیک کنم و بریزم داخل دو متغییر دیگه . ممنون میشم راهنمایی کنید .
155859
mmbguide
چهارشنبه 20 تیر 1403, 16:28 عصر
سلام. پیشنهاد میکنم روش _behnam_ را انجام بدید ولی اگر قصد دارید بصورت مستقیم مقدار یک متغیر را از Json String بخوانید حتما لینک های زیر را مطالعه کنید:
https://stackoverflow.com/questions/37291102/getting-a-specific-field-from-a-json-string-without-deserializing-in-c-sharp
https://stackoverflow.com/questions/58535285/how-to-parse-this-json-result-without-making-class-in-c-sharp
_behnam_
پنج شنبه 21 تیر 1403, 09:46 صبح
سلام . درصورتی که نمیخواید کلاسی با پراپرتی های مورد نیازتون بسازید . باید از کلاس های داینامیک استفاده کنید.
کد زیر نیازتون رو برطرف میکنه.
dynamic Jobj = JObject.Parse("{\"data\":[{\"mobile\":\"0000\",\"messageText\":\"this is test message\"}]}");
var MessageText =Jobj.data[0].messageText;
var Mobile=Jobj.data[0].mobile;
textbox1.text=$"{Mobile} : {MessageText}";
باید مقدار دریافتی رو به جای رشته زیر توی کد بزارید.
"{"data":[{"mobile":"0000","messageText":"this is test message"}]}"
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.