همنطور که می دونید توی جی سان براکتهای [] معرف آرایه هست ولی json_encode این براکتها رو به رشته تولیدی خودش اعمال نمی کنه و در نتیجه یه شی تولید می شه.من یکم کوتاهترش رو براتون میگم :
همنطور که می دونید توی جی سان براکتهای [] معرف آرایه هست ولی json_encode این براکتها رو به رشته تولیدی خودش اعمال نمی کنه و در نتیجه یه شی تولید می شه.
وقتی این شی رو برای کلاینت می فرستیم، توابعی مثل length دیگه روی شی عمل نمی کنن.
توی کلاینت چطور باید طول ارایه چند بعدی رو بدست آورد؟ یا چطور باید به یکی از فیلدهای آرایه دسترسی پیدا کرد ؟
با فایرباگ خروجی رو تست کردم.شما اصلا این کد رو تست کردید ببینید چی تولید میکنه؟
رشته تولیدی به همین شکل هست ولی چرا توی کلاینت کد زیر طول آرایه چند بعدی رو نمایش نمی ده و بجای طول آرایه undefined نمایش می ده؟شی تولید نمیشه و آرایه چند بعدی با اندیس شروع از 0 تا تعداد رکورد منهای 1، تولید میشه.
var myObject = eval("(" + ServerResponse + ")");
alert(myObject.length);
با فایرباگ خروجی رو تست کردم.
رشته تولیدی به همین شکل هست ولی چرا توی کلاینت کد زیر طول آرایه چند بعدی رو نمایش نمی ده و بجای طول آرایه undefined نمایش می ده؟
لطفا توجه کنید که کدها به خوبی اجرا می شن و فایرباگ رشته خروجی رو نمایش می ده ولی نمی شه طول آرایه چند بعدی رو بدست آورد.کد:var myObject = eval("(" + ServerResponse + ")"); alert(myObject.length);
var count = 0;
for (var i in obj) {
count++
نمی دونید توی جاوا اسکریپت چطور باید این کار رو کرد؟من با jquery کار کردم که اونجا با parsejson خروجی آرایه تولید میشه.
نمی دونید توی جاوا اسکریپت چطور باید این کار رو کرد؟
آیا JSON.parse توی ie6 هم جواب می ده؟باید به تابع eval پاس کنیدش یا تو مرورگرهای جدید از JSON.parse استفاده کنید
نه!آیا JSON.parse توی ie6 هم جواب می ده؟