Получение данных json на PHP из мобильного приложения - PullRequest
0 голосов
/ 06 мая 2019

Я с трудом пытаюсь получить поля данных JSON из почтового запроса, отправленного из мобильного приложения.

На клиенте (мобильном приложении) данные JSON легкозакодирован с использованием класса модели.

Future<http.Response> postRequest(CustomerData data) async {

  var url = 'http://xxxxxxxxxxxx/testSendData.php';
  var body = data.toJson();
  var response = await http.post(url, headers: {"Content-Type": "application/json"}, body: body);
  print("RESPONSE STATUS : ${response.statusCode}");
  print("RESPONSE BODY : ${response.body}");
  return response;
}

Эта часть хорошо работает и генерирует JSON подобный:

{  
   "creation":"12/01/2019",
   "status":"paid",
   "price":0.0,
   "items":[  
      {  
         "name":"Math books",
         "amount":"2"
      },
      {  
         "name":"Skates adult",
         "amount":"1"
      },
      {  
         "name":"Tools",
         "amount":"8"
      }
   ]
}

Серверная часть PHP (testSendData.php) не работает хорошо,единственное, что мне удалось получить - это сами данные JSON, но я не смог получить разные поля:

$jsonData = file_get_contents("php://input");

Я пытался использовать json_decode, чтобы получить поля по отдельности, но безуспешно, я также пытался создать php CustomerData classдекодировать JSON, но все еще не работает.

Целью получения отдельных полей JSON является сохранение некоторых из них в БД

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

1 Ответ

1 голос
/ 06 мая 2019

Полагаю, вы получаете данные json в эту переменную $ jsonData

      <?php

        echo "jsondata=>".$jsonData='{  
         "creation":"12/01/2019",
         "status":"paid",
         "price":0.0,
         "items":[  
            {  
               "name":"Math books",
               "amount":"2"
            },
            {  
               "name":"Skates adult",
               "amount":"1"
            },
            {  
               "name":"Tools",
               "amount":"8"
            }
         ]
      }';

      $data1 = json_decode($jsonData, TRUE);
          echo "<pre>";
          print_r($data1);
          foreach ($data1 as $key => $value1) {

                if($key=='creation'){ 
                    echo $value1."<br>";
                }
                if($key=='status'){ 
                    echo $value1."<br>";
                }
                if($key=='price'){ 
                    echo $value1."<br>";
                }
                if($key=='items'){ 
                    foreach ($value1 as $key1 => $value_deta) {
                            print_r($value_deta);

                    }
                }

          }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...