-
Notifications
You must be signed in to change notification settings - Fork 34
JSON serialization
Decoding JSON from the request body and writing encoded JSON back to the response are some of the most common tasks involved in implementing REST apis. It is for this reason, Jaguar has built-in support for JSON serialization. Request
and Response
classes provide methods to make JSON serialization easy to use.
Request
object provides there methods to decode JSON body from the request:
-
bodyAsJsonMap
Deserializes request body into Dart Map -
bodyAsJsonList
Deserializes request body into Dart List -
bodyAsJson
Deserializes request body into a Dart built-in type depending on the body
server.post('/api/book', (Context ctx) async {
// Decode request body as JSON Map
final Map<String, dynamic> json = await ctx.req.bodyAsJsonMap();
Book book = new Book.fromMap(json);
// TODO ...
});
The Response
class has a json
static method that takes a Dart built-in object and returns a Response<String>
with mime type set to application/json
. It uses JSON.encode
internally to encode provided Dart built-in object to JSON string.
server.post('/api/book', (Context ctx) async {
Book book;
// TODO ...
// Encode Map to JSON
return Response.json(book.toMap());
});
In this article, we only discussed serializing and deserializing to Dart built-in types.
In the next article, we will learn how to use jaguar_serializer
package to serialize any PODO Dart object.
Basics
- Route handler
- Path matching
- Path parameters
- Query parameters
- Serving static files
- Cookies
- Controller
- Parameter binding
- Hot reload
Serialization
Forms
Sessions
Authentication
- Basic authentication
- Form authentication
- JSON authentication
- Authorization
- OAuth
- MongoDb
- PostgreSQL
- MySQL
- Establish connection
- ORM
- Server sent events (SSE)
- Websockets
- systemd
- Docker
- AppEngine