| 7.x common.inc | drupal_json_output($var = NULL) |
Returns data in JSON format.
This function should be used for JavaScript callback functions returning data in JSON format. It sets the header for JavaScript output.
Parameters
$var: (optional) If set, the variable will be converted to JSON and output.
21 calls to drupal_json_output()
- database_test_db_query_temporary in modules/
simpletest/ tests/ database_test.module - Run a db_query_temporary and output the table name and its number of rows.
- database_test_even_pager_query in modules/
simpletest/ tests/ database_test.module - Run a pager query and return the results.
- database_test_odd_pager_query in modules/
simpletest/ tests/ database_test.module - Run a pager query and return the results.
- database_test_tablesort in modules/
simpletest/ tests/ database_test.module - Run a tablesort query and return the results.
- database_test_tablesort_first in modules/
simpletest/ tests/ database_test.module - Run a tablesort query with a second order_by after and return the results.
1 string reference to 'drupal_json_output'
- system_menu in modules/
system/ system.module - Implements hook_menu().
File
- includes/
common.inc, line 5193 - Common functions that many Drupal modules will need to reference.
Code
function drupal_json_output($var = NULL) {
// We are returning JSON, so tell the browser.
drupal_add_http_header('Content-Type', 'application/json');
if (isset($var)) {
echo drupal_json_encode($var);
}
}
Comments
Drupal 6
The equivalent function in Drupal 6 is http://api.drupal.org/api/function/drupal_json/6
See http://drupal.org/update/modules/6/7#rename-drupal-to-js for more information.
However, D6 has some bugs
However, D6 has some bugs about header content-type (not
application/jsonbuttext/javascript) and breaks validation JSON if you are using jQuery update to 1.4. So use D6 version with care.Drupal 8
For the Drupal 8 equivalent, see http://drupal.org/node/1665684
for jsonp callback
for jsonp callback you can do something like this:
CSV output
In case someone, like I did, looks for an as simple (views independent) way to deliver CSV data, you may want to consider our little API helper at https://www.drupal.org/project/csv