This package allows programmers to annotate Dart objects for reflective invocation of the fromJson and toJson methods.
Features
This package allows programmers to annotate Dart objects for reflective invocation of the fromJson and toJson methods.
Getting started
Add into your pubspec.yaml
dependencies:
json_reflectable: ^1.0.0
Or run command in Terminal
flutter pub add json_reflectable
Usage
Add into your main.dart
import 'main.reflectable.dart';
void main() {
initializeReflectable();
//...
}
Add @jsonReflector
to the classes that require reflection
@jsonReflector
@JsonSerializable()
class TextEntity {
double float;
String string;
TextEntity(this.float, this.string);
factory TextEntity.fromJson(Map<String, dynamic> json) =>
_$TextEntityEntityFromJson(json);
Map<String, dynamic> toJson() => _$TextEntityEntityToJson(this);
}
Using instance mirror
final testJson = jsonDecode('''
{
"float": 1.0,
"string": "str"
}
''');
TextEntity instance = TextEntity.fromJson(testJson);
print(jsonReflector.toJson(instance));
Using class mirror
TextEntity instance = jsonReflector.formJson<TextEntity>(testJson);
print(instance.toJson());
Using iterable
final iterable = Iterable.generate(3, (index) => jsonMap);
final list = jsonReflector.formIterable<Text01Entity>(iterable).toList();
print("list ${list.runtimeType}");
print(jsonEncode(list));
Additional information
where to find more information
how to contribute to the package
how to file issues
Libraries
- json_reflectable
- Support for doing something awesome.