JSONファイルにオブジェクトを追加するサービスモジュールDrupalによって生成されます
質問
この問題について助けが必要です。 JSONファイルのハッシュを含むオブジェクトを追加する必要があります。
ノードからXMLおよびJSONファイルを生成するために、Drupal 6のサービスモジュールを使用しています。だから、私が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