PHP: Как получить массив JSON из приложения для iPad - PullRequest
1 голос
/ 20 октября 2011

Отказ от ответственности: я новичок в использовании json.

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

Вот несколько примеров, которые я пробовал на основеstackoverflow search.

$json_request = @file_get_contents('php://input'); 
$array = json_decode($json_request);

AND ALSO

$array = json_decode($_POST['data'], true);

Есть предложения?

1 Ответ

2 голосов
/ 20 октября 2011

У вас уже есть основная идея.

Вы должны проверить, что значение установлено, а также убрать лишние косые черты из входящей строки, прежде чем анализировать ее как JSON.

if(isset($_POST['data'])){
  $array = json_decode(stripslashes($_POST['data']),true);
  //$array now holds an associative array
}//Data Exists

Перед началом работы с массивом неплохо было бы также проверить, что вызов json_decode() прошел успешно, убедившись, что $array не является null перед использованием.

Если вы не полностью доверяете целостности отправляемой информации, вам следует выполнить расширенную проверку по пути, а не полагать, что данный ключ существует.

if($array){ // Or (!is_null($array)) Or (is_array($array)) could be used
  //Process individual information here

  //Without trust
  if(isset($array['Firstname'])){
    $CustomerId = $array['Firstname'];
  }//Firstname exists
}//$array is valid

В частности, мне нравится проверять информацию при динамическом построении запросов на информацию, которая может не потребоваться для успешной вставки БД.

В приведенном выше примере $_POST['data'] указывает, что то, что когда-либо называлось PHP-скриптом, делало так, передавая строку JSON с помощью метода post в переменную, обозначенную как data.

Вы можете проверить более универсально, чтобы обеспечить гибкость в методе отправки, используя переменную $_REQUEST, или, если вы знаете, что это происходит, как с помощью метода get, вы можете проверить $_GET. $_REQUEST содержит все входящие параметры из get и post.

Если вы не знаете, как называется переменная, и хотите играть очень быстро и свободно, вы можете циклически перебирать клавиши в $_REQUEST, пытаясь декодировать каждую из них и использовать ту, которая успешно декодировалась (если любой). [Примечание: я не поощряю это]

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