Drupal创建一个输出JSON的页面

时间:2010-09-03 13:58:04

标签: json drupal

我想问一下可以创建一个输出JSON数据的页面作为对Jquery Ajax请求的响应吗?

以非drupal的方式,我只想创建一个php文件,例如mypage.php然后我会使用http://example.com/mypage.php?foo=bar作为我的AJAX请求的URL。然后,该页面将使用json_encode()输出JSON数据。

我怎么能以Drupal方式做到?

2 个答案:

答案 0 :(得分:36)

scott reynen提示的一个工作示例:在drupal 7中, 在名为mymodule的模块中,写

function mymodule_menu() {
    $items['fancystuff/json'] = array(
        'access callback'   => true, // available to all
        'page callback'     => 'mymodule_fancystuff_object', // defined below
        'delivery callback' => 'drupal_json_output' 
    );
    return $items;
}



function mymodule_fancystuff_object() {
    return array('test'=>true,'dummy'=>array(0,1));
}

清除你的缓存,转到http://example.com/fancystuff/json并注意

答案 1 :(得分:21)

JSON server module为您提供节点的JSON输出。

如果您想要更多自定义JSON,可以使用hook_menu()创建新的菜单回调(基本上是指向函数的URL路径),然后使用:

在该回调中将输出作为JSON而不是默认HTML发送。