Drupal创建一个输出JSON的页面

r2b*_*2b2 15 json drupal

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

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

我怎么能以Drupal方式做到这一点?

com*_*ike 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));
}
Run Code Online (Sandbox Code Playgroud)

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


Sco*_*nen 21

JSON服务器模块为您提供了节点的JSON输出.

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

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