سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ محمد دولت خواه
مشکل در خروجی json to stdclass object
امیر صالحی حل شده توسط امیر صالحی

سلام 

من طبق آموزش برای ایجاد آرایه از 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" =>"ali@gmail.com",
        "username" =>"ali7885",
    ],
    "1" =>[
        "name" =>"mohammad",
        "email" =>"md@gmail.com",
        "username" =>"md8585",
    ],
   "2" =>[
        "name" =>"maryam",
        "email" =>"maryam@yahoo.com",
        "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);
?>

 

سلام و احترام

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

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

 

// output: ali

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

$array = json_decode($jsonstr, true);

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

موفق باشید

بهترین پاسخ
امیر صالحی ۲۶ مهر ۱۳۹۹، ۰۹:۴۱