Aggiungi oggetto in un file JSON generare dai servizi modulo Drupal
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?
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 ??p>