PDA

View Full Version : مبتدی: استفاده از JSON در C#‎‎



shahriar_1363
دوشنبه 06 دی 1395, 13:38 عصر
با سلام خدمت همه دوستان

من یه پروژه ای دارم که تو اون از طریق یه صفحه وب رشته ای بصورت JSON می گیرم و اون رو از طریق dynamic str = JsonConvert.DeserializeObject<object>(dlstr); تبدیل به آبجکت سی شارپ می کنم و می تونم عناصر رو نمایش بدم بصورت زیر
label1.Text = Convert.ToString(str[Convert.ToString(1)]["0"]);
مشکلی که دارم هر چقدر هم سرچ کردم چیزی دستگیرم نشده این هست که نمی تونم str رو به آرایه دو بعدی تبدیل کنم. رشته JSON بصورت زیر هست
{"0":{"0":"419534","1":"4150205817610379"},
"1":{"0":"419535","1":"6110205311610377"},
"2":{"0":"419536","1":"7110205712610373"},
"3":{"0":"419537","1":"5140205718610379"},
"4":{"0":"419538","1":"4170205813610374"}}

البته از این طولانی تر هست
درضمن من از کتابخانه JSON.NET استفاده می کنم
ممنون از راهنمایی هاتون

Masoomeh.H
دوشنبه 06 دی 1395, 15:57 عصر
سلام
یه نگاهی به لینک های زیر بندازید

http://stackoverflow.com/questions/31212421/how-to-convert-json-object-to-array-in-c-sharp

http://stackoverflow.com/questions/14792755/convert-json-string-to-c-sharp-string-array

http://stackoverflow.com/questions/9586585/convert-json-to-a-c-sharp-array

shahriar_1363
دوشنبه 06 دی 1395, 17:49 عصر
سلام ممنون از توجه تون حقیقتش همه این ها رو نیگا کردم ولی درک نمی کنم بیشترشون رو سعی کردم پیاده کنم ولی متاسفانه جواب نگرفتم

Masoomeh.H
سه شنبه 07 دی 1395, 08:48 صبح
با این خط کد می تونید اطلاعات جیسون رو به آرایه تبدیل کنید

string[][] strings = JsonConvert.DeserializeObject<string[][]>(jsonData);

shahriar_1363
سه شنبه 14 دی 1395, 11:09 صبح
با این خط کد می تونید اطلاعات جیسون رو به آرایه تبدیل کنید

string[][] strings =JsonConvert.DeserializeObject<string[][]>(jsonData);

با سلام ممنون از راهنمایی تون ولی متاسفانه این دستور که شما فرمودید Error میده

Masoomeh.H
سه شنبه 14 دی 1395, 14:03 عصر
میشه ارورش رو بزارید

shahriar_1363
سه شنبه 14 دی 1395, 17:25 عصر
ممنون از توجه تان
من از طریق کد زیر تونستم اطلاعات رو داخل آرایه بزارم ولی به نظرم کد جالبی نمیاد لطفا اگه تونستین راهنماییم کنید
dynamic str = JsonConvert.DeserializeObject<object>(dlstr);
for (i = 0; str[Convert.ToString(i)]["0"]!="dd"; i++)
{

}
int lengarr = i;
string[,] myarr=new string[lengarr,2];

for (i = 0; i < lengarr; i++)
{
myarr[i, 0] = Convert.ToString(str[Convert.ToString(i)]["0"]);
myarr[i, 1] = Convert.ToString(str[Convert.ToString(i)]["1"]);

}
for (i = 0; i < lengarr; i++)
{

richTextBox1.Text += Convert.ToString(i) + "-->" + Convert.ToString(myarr[i,0]) + "-->" + Convert.ToString(myarr[i,1]) + "\n";
}

shahriar_1363
سه شنبه 14 دی 1395, 17:27 عصر
میشه ارورش رو بزارید

این ارور رو میده
Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.String[][]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.
To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.
Path '0', line 1, position 5.