преобразовать массив json в объект json в laravel 5.7 - PullRequest
0 голосов
/ 23 мая 2019

Я получаю данные из базы данных, используя запрос соединения в laravel и передаю json и получаю некоторый результат в массиве, но мне нужен объект, который я дал ниже

Код контроллера:

$resultPastActivity= DB::table('table_user_create_activity')
                            ->join('table_sub_category','table_user_create_activity.selected_activity_id', '=', 'table_sub_category.sub_category_id')
                            ->select('sub_category_name','area','activity_type','activity_date','start_time','end_time')
                            ->whereDate('activity_date', '<', $todayDate)
                            ->where('user_id',$user_id)
                            ->get();

 return response()->json(['success' => '1','data' =>$resultPastActivity]);

Приведенный выше код даст следующий json, который находится в массиве, на самом деле я хочу json в объекте

{
    "success": "1",
    "data": [
        {
            "sub_category_name": "Badminton",
            "area": "Rankala lake",
            "activity_type": "1",
            "activity_date": "2018-01-12",
            "start_time": "15:04:49",
            "end_time": "20:05:69"
        },
        {
            "sub_category_name": "Football",
            "area": "Devakar panad",
            "activity_type": "1",
            "activity_date": "2018-01-15",
            "start_time": "15:04:49",
            "end_time": "20:05:69"
        },
    ]
}



i want json as follows
{
    "success": "1",
    "data": {
        {
            "sub_category_name": "Badminton",
            "area": "Rankala lake",
            "activity_type": "1",
            "activity_date": "2018-01-12",
            "start_time": "15:04:49",
            "end_time": "20:05:69"
        },
        {
            "sub_category_name": "Football",
            "area": "Devakar panad",
            "activity_type": "1",
            "activity_date": "2018-01-15",
            "start_time": "15:04:49",
            "end_time": "20:05:69"
        },
    }
}

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

То, что вам нужно, это , а не действительный JSON, вы можете проверить его здесь: https://jsonformatter.curiousconcept.com/

Итак, вы не можете создать такой вывод, и, если вы его форсируете,приложение, которое получит его, не сможет правильно его проанализировать, поэтому оно не имеет смысла.

0 голосов
/ 23 мая 2019

попробуйте это, json_encode ($ json, JSON_FORCE_OBJECT) JSON_FORCE_OBJECT

$result=array();
$result["0"]=$resultPastActivity;
$json=json_encode((object)$result,JSON_FORCE_OBJECT);
return response()->json(['success' => '1','data' =>$json]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...