Generally, you get JSON data from a web service or a database. In our example, the JSON was contained in an asset file. In any case, regardless of your source for the data, reading data is generally an asynchronous task. That's why the readJsonFile method was set to async from the very beginning.
When you read from a file that's been loaded into the assets, you can use the DefaultAssetBundle.of(context) object, as we did with the following instruction:
String myString = await DefaultAssetBundle.of(context).loadString('assets/pizzalist.json');
An asset is a file that you can deploy with your app and access at runtime. Examples of assets include configuration files, images, icons, text files, and, as in this example, some data in JSON format.
When you add assets in Flutter, you need to specify their position in the pubspec.yaml file, in the asset key:
assets:
- assets/