مشکل در خروجی json to stdclass object

پرسیده شده
فعالیت 1290 روز پیش
دیده شده 536 بار
0

سلام 

من طبق آموزش برای ایجاد آرایه از json  عمل کردم و به ارور برخورد کردم و ممنون میشم راهنماییم کنین 

متن ارور 

Notice: Trying to get property '0' of non-object in C:\xampp\htdocs\php-expert-basic\05-arrays\array-and-json.php on line 46

Notice: Trying to get property 'name' of non-object in C:\xampp\htdocs\php-expert-basic\05-arrays\array-and-json.php on line 46

Notice: Trying to get property 'firstname' of non-object in C:\xampp\htdocs\php-expert-basic\05-arrays\array-and-json.php on line 46

 

<?php 
$users2 = array(
    "0" =>[
        "name" =>[
           "firstname"=>"ali",
           "lastname"=>"bayat",
        ],
        "email" =>"[email protected]",
        "username" =>"ali7885",
    ],
    "1" =>[
        "name" =>"mohammad",
        "email" =>"[email protected]",
        "username" =>"md8585",
    ],
   "2" =>[
        "name" =>"maryam",
        "email" =>"[email protected]",
        "username" =>"maryam8585",
    ],
);
//print_r($users2);
echo "<br>";
echo "<br>";
//*********************************************** */
//array to json
$jsonstr = json_encode($users2);
//echo $jsonstr;
/************************************************* */
//json to array associative
echo "<br>";
echo "<br>";
$jsonArr =json_decode($jsonstr,1);
print_r($jsonArr);
echo "<br>";
echo "<br>";
echo ($jsonArr[0]["name"]["firstname"]);
echo "<br>";
echo "<br>";
/************************************************** */
// json to stdclass object
$userObject =json_decode($jsonstr);
print_r($jsonArr);
echo "<br><br>";
echo($userObject->{0}->name->firstname);
?>

 

فایل پیوست

mohammad doulatkhah
mohammad doulatkhah

26 مهر 99

0
حذف شده

سلام و احترام

توی خط ۴۶ که شما می‌خواهید ایندکس ۰ به عنوان json  صدا بزنید و استفاده کنید، در حقیقت کلیدهای json شما به شکل آرایه هستند و ابتدا باید ایندکس ۰  را به صورت آرایه صدا بزنید تا به درستی کار کند. به شکل زیر

echo($userObject['0']->name->firstname);

خروجی: 

// output: ali

اگه میخواهید به صورت کامل همه‌ی ساختار json شما به آرایه تبدیل شود پارمتر دوم تابع json_decode رو true بدهید.

$array = json_decode($jsonstr, true);

باز اگه سوالی بود بپرسید من در خدمتم

موفق باشید

فایل پیوست

امیر صالحی

توسط

امیر صالحی

26 مهر 99

حذف شده
خیلی عجیبه من یک آرایه دارم که مخلوطی از انجمنی و ایندکسی هست ولی این مشکل رو برخورد نمیکنم و با تبدیل json به آبجکت بدون مشکل میتونم به این شکل فرخوانی کنم echo($userObjects->{123}->name->firstName); کی اولی 123 هست آرایه انجمنی هست سوال اینجاست وقتی ما به آبجکت تبدیل کردیم دیگه به json نیازی نداریم که میشه کمی بازتر کنید موضوع رو ممنونم