Domanda

Ho bisogno di aiuto per questo problema. Ho bisogno di aggiungere oggetto che racchiude l'hash del mio file JSON.

Io uso Modulo servizi in Drupal 6 per generare codice XML e il file JSON dai miei nodi. Così, quando ho vista il mio nodi in JSON ho questo:

[
{
"nid": "7",
"vid": "7",
"type": "page",
"language": "",
"title": "Bievenido", ..... } ]

Ma ho bisogno che questo aspetto del file JSON in questo modo:

[
{
"<whatever>": {
    "nid": "7",
    "vid": "7",
    "type": "page",
    "language": "",
    "title": "Bievenido", .....  } ]

Come modificare questo file JSON generato dal modulo servizi?

È stato utile?

Soluzione

Il JSON viene generato dal class RESTServerViewBuiltIn nel file services/servers/rest_server/includes/rest_server.views.inc, in particolare la funzione di membro render_json.

Servizi fornisce un modo per ignorare questo.

In primo luogo in un modulo personalizzato implementare hook_rest_server_response_formatters_alter e cambiare la classe View che viene utilizzato per rendere l'output in un uno personalizzato:

function MYMODULE_rest_server_response_formatters_alter(&$formatters) {
  $formatters['json']['view'] = 'RESTServerViewMYMODULE';
}

Allora aggiungi la tua personalizzato classe View (mi piacerebbe mantenere questo nel file del modulo per evitare di dover caricare comprende):

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;
  }
}

La speranza che aiuta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a drupal.stackexchange
scroll top