# Using JSON

> Dart solutions for reading and writing JSON.



Most mobile and web apps use JSON for tasks such as
exchanging data with a web server.
This page discusses Dart support for JSON _serialization_ and _deserialization_:
converting Dart objects to and from JSON.


## Libraries

The following libraries and packages are useful across Dart platforms:

* [dart:convert](/libraries/dart-convert)<br>
  Converters for both JSON and UTF-8
  (the character encoding that JSON requires).

* [package:json_serializable](https://pub.dev/packages/json_serializable)<br>
  An easy-to-use code generation package.
  When you add some metadata annotations
  and use the builder provided by this package,
  the Dart build system generates serialization and deserialization code for you.

* [package:built_value](https://pub.dev/packages/built_value)<br>
  A powerful, opinionated alternative to json_serializable.


## Flutter resources

[JSON and serialization](https://docs.flutter.dev/development/data-and-backend/json)
: Shows how Flutter apps can serialize and deserialize both
  with dart:convert and with json_serializable.


## Web app resources

[Fetch data from the internet](/tutorials/server/fetch-data)
: Demonstrates how to use `package:http` to retrieve data with a web server.





