2013-11-19 6 views
3

У меня есть сервер 1, который будет размещать данные в формате JSON на мой сервер 2 URL (Drupal сайта)Как читать данные JSON в Drupal 7

Пример JSON объект запроса

{"ConfirmationNumber":"344", "E-mailAddress":"[email protected]", "FirstName":"FIRSTNAME", "LastName":"LASTNAME", "SKU":"XYZ"} 

мне нужно прочитать над запросом на сайте Drupal означает сервер 2 для анализа объекта JSON и выполнения некоторой бизнес-логики. Любая быстрая помощь очень ценится

Пример: http://mydrupalsite.com/services/register

Некоторые внешний сайт размещает данные в формате JSON на мой выше URL.

Мне нужно прочитать содержание JSON, которое они разместили на моем сайте drupal. Это то, чего я хочу. Получение/чтение данных - это мой первый шаг. Анализ в порядке, который мы можем сделать в следующем шаге.

ответ

1
/** 
* Implementation of hook_services_resources(). 
*/ 
function yourmodulename_services_resources() { 
    return array(
    'yourmodulename' => array(
    'create' => array(
     'help' => 'Retrievs a test', 
     'callback' => '_yourmodulename_create', 
     'access callback' => '_yourmodulename_access',  
     'args' => array(
     array(
      'name' => 'data', 
      'type' => 'struct', 
      'description' => 'The note object', 
      'source' => 'data', 
      'optional' => FALSE, 
     ), 
     ), 
    ), 
    ), 
); 
} 

/** 
* Callback for creating resources. 
* 
* @param object $data 
* @return object 
*/ 
function _yourmodulename_create($data) { 
return $data; 
} 

/** 
* Access callback for the note resource. 
* 
* @param string $op 
* The operation that's going to be performed. 
* @param array $args 
* The arguments that will be passed to the callback. 
* @return bool 
* Whether access is given or not. 
*/ 
function _yourmodulename_access($op, $args) { 
    $access = TRUE; 
    return $access; 
} 
+0

дает этот ответ –

0

Вы должны использовать drupal_json_encode: https://api.drupal.org/api/drupal/includes!common.inc/function/drupal_json_decode/7

С уважением.

+0

Так как я новичок в Drupal. Можете ли вы предоставить синтаксис для него. Спасибо за ваш быстрый ответ. Bascially я не ищу синтаксический анализ JSON в drupal. Вместо этого я хочу знать, как мы можем читать данные JSON, размещенные на нашем URL-адресе в drupal. –

+0

Его легко! drupal_json_decode ($ Var); $ var - ваш json! –

+0

Марио: Я обновляю вопрос, пожалуйста, проверьте мой пример, чтобы получить то, что я хочу. Спасибо за ваш ответ –

0

Использование drupal_json_decode ($ data). Вы получите массив php. Затем используйте foreach и прокрутите его, чтобы получить значения.

$content = drupal_json_decode($data); 
foreach($content as $key => $value) { 
    // here $value will contain your value. You can perform any business logic with  $value... 
} 
4

Чтобы прочитать ответ json.

$url = "your request url"; 
$request = drupal_http_request($url); 
$json_response = drupal_json_decode($request->data); 
foreach ($json_response as $response_data) { 
    //your operation code 
} 
0

Если понадобится объект JSON из URL-адреса, например {"text": "HelloWorld"}. Я советую использовать этот метод:

//Create a path 
$mypath = 'http://example.com'; 
//Create a option 
$options = array('query' => array('parametr1' => '1', 'parametr2' => '2')); 
//Create url 
$url = url($path = $url, $options); 
//Create request 
$request = drupal_http_request($url); 
//Take response data(A string containing the response body that was received) 
$json_response = drupal_json_decode($request->data); 
// Varible text return HelloWorld 
$text = $json_response['text']; 

С уважением

Смежные вопросы