-
Notifications
You must be signed in to change notification settings - Fork 35
JSON serialization
Decoding JSON request body and writing JSON response are basic tasks of REST APIs. It is for this reason, Jaguar has built-in support for JSON serialization. Context
and Response
classes provide methods to make JSON serialization easy to use.
Context
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