Question

I am trying to create an api with Recess and I have a question about its JsonView. Currently, if I do a GET request on, for example, /users/1 (which routes to a function that gets all the details for the user with id 1 and responds with Json), I get the following:

{"users":{"id":"1","username":null,"password":null,"datejoined":false}}

How can I make it so that I get the following instead:

{"id":"1","username":null,"password":null,"datejoined":false}

That is, I don't want all the details wrapped inside "users":{}.

Was it helpful?

Solution

By default, Recess's JsonView responds with the properties of your controller. So your $users property is getting directly encoded into JSON.

You can override this by returning a custom response object:

return new OkResponse($this->request, (array)$this->users);

OTHER TIPS

Not sure about recess specifically, but if you are using JsonView method/function with an input parameter (array) $result, then changing $result to $result['users'] may give you the answer you are looking for.

For example using plain PHP:

first object: echo json_encode($result);
second object: echo json_encode($result['users']);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top