سعید
4 سال پیش توسط سعید مطرح شد
8 پاسخ

ایجاد خروجی json

سلام دوستان من یه کد در لاراول دارم که خروجی آرایه ای داره ، می خواستم دوستان کمک کنن که خروجی json و آبجک از اون بگیرم
کد من به صورت زیر هست :

foreach ($data as $key => $id) {
            $check_name[$key] = CheckList::whereId($id)->pluck('name');
 }
return $check_name;

و خروجی کد بالا به صورت زیر است :

[
    [
        "کولرگازی"
    ],
    [
        "تلفن ثابت"
    ],
    [
        "گاز"
    ]
]

من می خوام این خروجی رو به صورت json بگیرم نه آرایه


ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 4 سال پیش مطرح شد
0

بببینید شما هیچ وقت اینطوری نمیتونید درش بیارید

  {
        "کولرگازی" ,
            "تلفن ثابت" , 
           "گاز" ,
        }

باید به شکل زیر عمل بفرمایید

[
"کولرگازی",
"تلفن ثابت",
"گاز"
]

برای تبدیل نتیجه کد شما به چیزی که من گفتم میتونید از حالت زیر استفاده بفرمایید

    return response()->json(['errors' => 'no error', 'status' => '200', 'data' => collect($chunk)->collapse()], 200);

حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 4 سال پیش مطرح شد
1

ببینید فرمت json یعنی یک رشته ! الان کدی که میفرمایید خیلی راحت مثل یک رشته در هر جای که بخواید قابل دسترس هست .
البته از json_encode هم میتونید استفاده بفرمایید.
یا لینک زیر رو مطالعه کنید
https://laravel.com/docs/6.x/eloquent-serialization#serializing-to-json


سعید
تخصص : برنامه نویس وب
@Saeeed 4 سال پیش آپدیت شد
0

@hesammousavi
الان این خروجی برای api مناسب هست؟
برنامه نویس موبایل به من میگه خروجی حتما باید قالب زیر رو داشته باشه:

‍‍data : [ { }, { } ]

و از طرفی خروجی من همیشه { } اینجور بوده ، الان این برنامه نویس میگه حتما باید با [ ] شروع بشه ، میگه اگر با [ ] شروع نشه ، با جاوا قابل پردازش نیست !!!!


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 4 سال پیش مطرح شد
0

@Saeeed

$record1['data'] = $record;
$record1['status'] = 'success';
echo json_encode($record1);

فرض کنین شما خروجیتون توی متغیر record$ باشه.
فکر کنم اینجوریم میتونین توی فرمتی که گفتین در بیارین!


سعید
تخصص : برنامه نویس وب
@Saeeed 4 سال پیش مطرح شد
0

@elyasbeshkani @hesammousavi

ببینید الان خروجی متغیر check_name$ در کد زیر :

foreach ($data as $key => $id) {
     $check_name[$key] = CheckList::whereId($id)->pluck('name');
 }

 return response()->json(['errors' => 'no error', 'status' => '200', 'data' => $check_name], 200);

خروجی آن به این صورت است:

{
    "errors": "No Error",
    "status": 200,
    "data": [
        [
            "کولرگازی"
        ],
        [
            "تلفن ثابت"
        ],
        [
            "گاز"
        ],
       ]
}

من می خوام خروجی آن به این صورت باشد :

{
  "errors": "No Error",
   "status": 200,
   "data": [ 
        {
        "کولرگازی" ,
            "تلفن ثابت" , 
           "گاز" ,
        }
    ]
}

دوستان خواهش میکنم اگر نظر دارید ، حتما بیان کنید ، کارم خیییییلی گیره ، ممنون از همه

‍‍


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 4 سال پیش مطرح شد
0

بببینید شما هیچ وقت اینطوری نمیتونید درش بیارید

  {
        "کولرگازی" ,
            "تلفن ثابت" , 
           "گاز" ,
        }

باید به شکل زیر عمل بفرمایید

[
"کولرگازی",
"تلفن ثابت",
"گاز"
]

برای تبدیل نتیجه کد شما به چیزی که من گفتم میتونید از حالت زیر استفاده بفرمایید

    return response()->json(['errors' => 'no error', 'status' => '200', 'data' => collect($chunk)->collapse()], 200);

سعید
تخصص : برنامه نویس وب
@Saeeed 4 سال پیش مطرح شد
0

@hesammousavi

اقای موسوی ممنون از راهنمایی کاربردی شما.

فکر میکنم در فهم بعضی از موضوعات دچار سردرگمی شدم ، میشه بفرمایید در چه موضوعاتی باید تحقیق کنم تا این موضوع رو به طور کامل درک کنم.
فکر میکنم در شی گرایی و آبجکت ها و آرایه ها و جیسون مشکل دارم ،
بازهم اگر شما راهنمایی کنید ممنون میشم


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 4 سال پیش مطرح شد
1

با تجربه کاملا راه می افتید .
فقط احساس میکنم شی گرایی js رو با php قاطی کردید


سعید
تخصص : برنامه نویس وب
@Saeeed 4 سال پیش مطرح شد
0

بله راهنمایی شما بسیار دقیق هست ، چند وقتی هست درگیری js هستم.
ممنون 🌷


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

ورود یا ثبت‌نام