Добавить объект в файл json генерировать модуль служб Drupal
Вопрос
Мне нужна помощь в этой проблеме. Мне нужно добавить объект, который охватывает хэш моего файла JSON.
Я использую модуль Services в 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, сгенерированный модулем Services?
Решение
JSON генерируется RESTServerViewBuiltIn
учебный класс в services/servers/rest_server/includes/rest_server.views.inc
файл, в частности render_json
функция члена.
Услуги действительно предоставляют способ переопределить это.
Во -первых, в реализации пользовательского модуля hook_rest_server_response_formatters_alter
и измените класс View, который используется для визуализации вывода на пользовательский:
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;
}
}
надеюсь, это поможет