将对象添加到JSON文件生成由服务模块Drupal生成
题
我需要关于这个问题的帮助。我需要添加包含JSON文件哈希的对象。
我在Drupal 6中使用服务模块来从我的节点生成XML和JSON文件。因此,当我在JSON中查看我的节点时,我有一个:
[
{
"nid": "7",
"vid": "7",
"type": "page",
"language": "",
"title": "Bievenido", ..... } ]
但是我需要这个JSON文件看起来像这样:
[
{
"<whatever>": {
"nid": "7",
"vid": "7",
"type": "page",
"language": "",
"title": "Bievenido", ..... } ]
如何更改服务模块生成的JSON文件?
解决方案
JSON由 RESTServerViewBuiltIn
班级 在里面 services/servers/rest_server/includes/rest_server.views.inc
文件,特别是 render_json
成员功能。
服务确实提供了一种覆盖此问题的方法。
首先在自定义模块中 hook_rest_server_response_formatters_alter
并更改用于将输出渲染为自定义的视图类:
function MYMODULE_rest_server_response_formatters_alter(&$formatters) {
$formatters['json']['view'] = 'RESTServerViewMYMODULE';
}
然后添加您的自定义视图类(我将其保存在模块文件中以避免加载包含):
class RESTServerViewMYMODULE extends RESTServerView {
public function render() {
$new_data = new stdClass;
$new_data->some_key = $this->model;
$json = str_replace('\\/', '/', json_encode($new_data));
return $json;
}
}
希望有帮助
不隶属于 drupal.stackexchange