|
|
|
# jsonexample
|
|
|
|
|
|
|
|
A Flutter sample app that deserializes a set of JSON strings using three
|
|
|
|
different libraries: `dart:convert`, `json_serializable`, and
|
|
|
|
`built_value`.
|
|
|
|
|
|
|
|
## Goals for this sample
|
|
|
|
|
|
|
|
* Help you decide which of the three most common libraries for
|
|
|
|
deserializing JSON is right for your project.
|
|
|
|
* Provide you with example code for deserializing:
|
|
|
|
* Simple and nested objects
|
|
|
|
* Lists of primitive values
|
|
|
|
* Maps containing primitive values
|
|
|
|
|
|
|
|
## The important bits
|
|
|
|
|
|
|
|
### `json_strings.dart`
|
|
|
|
|
|
|
|
The actual JSON to be deserialized.
|
|
|
|
|
|
|
|
### `dart_convert`/`json_serializable`/`dart_convert`
|
|
|
|
|
|
|
|
These folders contain code used to deserialize the simple and complex
|
|
|
|
object models using one of the three libraries. They do the work of
|
|
|
|
instantiating models and populating their fields.
|
|
|
|
|
|
|
|
### `tab_pages.dart`
|
|
|
|
|
|
|
|
Each tab page in the app deserializes one type of data with one library.
|
|
|
|
These Widgets show what app code using the above libraries might look like.
|
|
|
|
|
|
|
|
## Generating
|
|
|
|
|
|
|
|
The lib/build_value and lib/json_serializable use build_runner to generate
|
|
|
|
files. If you make a change to these files, you need to re-run the generator
|
|
|
|
using `build_runner`:
|
|
|
|
|
|
|
|
```
|
|
|
|
flutter pub run build_runner build
|
|
|
|
```
|
|
|
|
|
|
|
|
## Questions/issues
|
|
|
|
|
|
|
|
If you have a general question about JSON serialization in Flutter, the
|
|
|
|
best places to go are:
|
|
|
|
|
|
|
|
* [The FlutterDev Google Group](https://groups.google.com/forum/#!forum/flutter-dev)
|
|
|
|
* [The Flutter Gitter channel](https://gitter.im/flutter/flutter)
|
|
|
|
* [StackOverflow](https://stackoverflow.com/questions/tagged/flutter)
|
|
|
|
|
|
|
|
If you run into an issue with the sample itself, please file an issue
|
|
|
|
in the [main Flutter repo](https://github.com/flutter/flutter/issues).
|
|
|
|
|