PDA

View Full Version : نیاز به راهنمایی برای این کد



mortezagt
چهارشنبه 21 تیر 1396, 23:43 عصر
سلام
من یه سری داده از طریق json به سرور ارسال میکنم و سرور هم مقادیر زیر رو برگشت میده



Array
(
[0] => stdClass Object
(
[Kind] => charter
[Description] => پروازهای چارتری
[AirLine] => Ata Airlines
[FlightNumber] => 5601
[Aircraft] =>
[LeaveDate] =>
[LeaveDateFa] => 96/04/25
[LeaveTime] => 05:30
[ArrivalTime] =>
[AirLineEnglish] =>IR
[ClassType] => Y
[ClassDetails] =>
[price] => 1900000
[PriceChild] =>
[PriceInfant] =>
[count] => 9
[From] =>
[To] =>
[AgencyCode] => 113
[agname] => ره بال آسمان
[subflid] =>
)





چطوری میتونم اینا رو توی یه ارایه یا هر چیز دیگه بریزم تا بتونم ازش استفاده کنم
مثلا [Kind] میشه charter
یا [LeaveDateFa] میشه 96/04/25

خیلی نیاز دارم
ممنون میشم کمک کنید

moslem.hady
پنج شنبه 22 تیر 1396, 07:15 صبح
شما باید این json رو به اصطلاح پارس کنید.
گوگل کنید c# parse json

mortezagt
پنج شنبه 02 شهریور 1396, 13:59 عصر
من نتونستم چیزی پیدا کنم
میشه یه نمونه کد سالم بزارید
خیلی ضروریه
ممنونم

Moien Tajik
پنج شنبه 02 شهریور 1396, 19:44 عصر
از کتابخانه Newtonsoft میتونید برای Serialize و Deserialize کردن json هاتون استفاده کنید :
https://www.codementor.io/andrewbuchan/how-to-parse-json-into-a-c-object-4ui1o0bx8
http://www.dotnettips.info/post/900

mortezagt
جمعه 03 شهریور 1396, 15:10 عصر
ممنون
من Newtonsoft رو دارم اما دقیقا ندونستم چطوری باید این کارایی که گفتی رو انجام بدم
اگر ممکنه کد برام بزار که خودت تست کرده باشی
ممنون میشم

Moien Tajik
جمعه 03 شهریور 1396, 15:41 عصر
اگر لینک اون سرور که بهش request میدید رو قرار بدید بهتر میشه راهنمایی کرد .

نمونه ای از Parse کردن Json در #C :


WebClient c = new WebClient();
var data = c.DownloadString("http://localhost/json.php");
JObject o = JObject.Parse(data);
Console.WriteLine("Name: "+o["name"]);

moslem.hady
شنبه 04 شهریور 1396, 08:58 صبح
این تابعیه که من برای کاری مشابه با کار شما نوشتم:

public IEnumerable<Info> GetData(){
using (WebClient client = new WebClient())
{

client.Encoding = System.Text.Encoding.UTF8;
client.Headers.Add(HttpRequestHeader.AcceptCharset , "UTF-8");


string val = client.DownloadString(App.Address);
// deserialize json objects
var data = JsonConvert.DeserializeObject<List<Info>>(val);


// check status
if (data == null )
throw new NullReferenceException();






return data;
}
}

البته من فقط آدرس App.Address رو فراخونی میکنم. و اطلاعاتی مشابه با اطلاعات شما بصورت جیسون میده.
بعد اونها رو توی یه کلاس Info میریزم که همون فیلدها رو داره.

mortezagt
جمعه 10 شهریور 1396, 15:30 عصر
این تابعیه که من برای کاری مشابه با کار شما نوشتم:

public IEnumerable<Info> GetData(){
using (WebClient client = new WebClient())
{

client.Encoding = System.Text.Encoding.UTF8;
client.Headers.Add(HttpRequestHeader.AcceptCharset , "UTF-8");


string val = client.DownloadString(App.Address);
// deserialize json objects
var data = JsonConvert.DeserializeObject<List<Info>>(val);


// check status
if (data == null )
throw new NullReferenceException();






return data;
}
}

البته من فقط آدرس App.Address رو فراخونی میکنم. و اطلاعاتی مشابه با اطلاعات شما بصورت جیسون میده.
بعد اونها رو توی یه کلاس Info میریزم که همون فیلدها رو داره.

ممنون
این کد واسه ارایه با یه فرمت دیگه هستش و فرمت کد ارایه من رو ساپورت نمیکنه

ببینید این کد جیسون هست که کاری که من میخوام رو انجام میده اما الان من میخوام با جاوا یا سی شارپ یا وی بی این کار رو انجام بدم
این کد جیسون






foreach(json_decode($server_output) as $row)
{

echo $row->Kind;
echo $row->LeaveDateFa;
}




این $server_output همون متن ارایه که توی پیام اولم گذاشتم رو نگه میداره