Как я могу добавить свои данные в свою базу данных, если мои данные представлены в форме JSON?

#php #arrays #laravel

#php #массивы #laravel

Вопрос:

Как я могу добавить свои данные в свою базу данных, если данные выглядят следующим образом?

 {"category_id":"1","topic_id":"1","scenario_id":"1","scoring":"0","nonscoring":"0"}{"category_id":"3","topic_id":"4","subtopic_id":"10","scoring":"0","nonscoring":"0"}
  

Я не знаю, что делать, кто-нибудь может мне помочь?

Вот код, который у меня есть на данный момент.

     public function store(Request $request)
    {

        $set_components = $request->get('set_components');

        foreach($set_components as $key => $value ) {

          $components[] = [
              'set_id' =>  1,
              'category_id' => ,
              'topic_id' =>,
              'subtopic_id' =>  ,
              'scenario_id' => ,
              'scoring' =>,
              'non_scoring' =>  ,
              'created_by' => Auth::user()->id
          ];
        }

        Set_component::insert($components);

        return response()->json([
          'success'=>$set_components
        ]);

    }
  

Я просто не знаю, как я могу добавить этот ответ в свой цикл for, чтобы вставить его в свою базу данных.

Любая помощь будет очень признательна.

Комментарии:

1. расшифруйте строку json, затем получите доступ к ее содержимому. php.net/manual/en/function.json-decode.php

2. привет, сэр, у меня эта ошибка json_decode() expects parameter 1 to be string, array given

3. Ваша строка json будет находиться $value внутри foreach . Вот где вам нужно расшифровать. Кроме того, я думаю, вам нужно будет объявить $component как массив перед вызовом foreach . Я отправлю сообщение в качестве ответа, если вы не смогли заставить его работать.

4. можете ли вы показать мне, как это сделать, сэр?

5. я уже пытался его расшифровать, но я просто получаю сообщение об ошибке json_decode() expects parameter 1 to be string, array given «я действительно не знаю, что делать». 🙁

Ответ №1:

Вам нужно будет расшифровать ваш json. Попробуйте:

 $components = [];
foreach($set_components as $key => $value ) {
   //$value holds your json string
   $decodedValue = json_decode($value);
   $components[] = [
    'set_id' =>  1,
    'category_id' => $decodedValue->category_id,
 ];
}
  

Комментарии:

1. привет, сэр, Use of undefined constant JSON - assumed 'JSON' (this will throw an Error in a future version of PHP) это ошибка, с которой я сталкиваюсь.

2. Не могли бы вы обновить свой вопрос с помощью исправленного кода, пожалуйста?

3. это мой плохой сэр, все уже в порядке, сэр, спасибо за помощь, сэр, это действительно мне очень помогло!