Allows you to create, set and get Map rows using dot notated strings.
Features
Using dot notated strings we can easily:
- Create a nest of maps and specify the value of the last key.
- Set the value of a key in a deeply nested map.
- Get the value of a key in a deeply nested map.
- Merge a list of maps (for convinience).
Usage
PathValue
Before we can create a row in a Map
we need to create PathValue
objects.
final row1 = PathValue(path: '1.2', value: {'3': 4}),
final row2 = PathValue(path: '5.6', value: {'7': 8}),
create()
We can create a single or multi dimensional row(s) inside a Map
by supplying
the create()
method with a single or multiple PathValue
objects.
// Simply supply a list of `PathValue` objects.
final row1 = PathValue(path: '1.2', value: {'3': 4}),
final row2 = PathValue(path: '5.6', value: {'7': 8}),
final map = MapPaths.create([row1, row2]);
// Gives us a `Map` as:
{
{'1': {'2': {'3': 4}}},
{'5': {'6': {'7': 8}}}
}
set()
We can set the value of a path by supplying a
dot notated String
and a value of dynamic
type.
// The value at the end of the path is 4.
final map = {'1': {'2': {'3': 4}}};
// Now we set the end value to 5.
final modifiedMap = MapPaths.set(map, '1.2.3', 5);
get()
We can get the value of a key by using a dot notated String
.
// The value at the end of the path is 4.
final map = {'1': {'2': {'3': 4}}};
// Will return 4.
final keyValue = MapPaths.get(map, '1.2.3');
Additional information
Feel free to direct issues and suggestions on the Github page.
Author: Paurini Wiringi
Libraries
- dotmap
- Support for doing something awesome.