我需要关于这个问题的帮助。我需要添加包含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;
  }
}

希望有帮助

许可以下: CC-BY-SA归因
scroll top