background_json_parser
With this package you can easily parse your json and convert your model to json.
Feature:
- Parse json with main thread.
- Parse json in background with multi thread (Asynchronous).
- Convert model to json with main thread.
- Convert model to json in background with multi thread (Asynchronous).
Usage:
It has a very easy to use.
- Add this line to pubspec.yaml.
dependencies:
background_json_parser: ^1.0.4
- import package.
import 'package:background_json_parser/background_json_parser.dart';
- Extend your model from IBaseModel and enter your model as generic type to IBaseModel.
class UserModel extends IBaseModel<UserModel> {
UserModel({
this.id,
this.name,
this.username,
this.email,
this.address,
this.phone,
this.website,
this.company,
});
int? id;
String? name;
String? username;
String? email;
Address? address;
String? phone;
String? website;
Company? company;
}
- Implement this methods to your class.
@override
fromJson(Map<String, dynamic> json) => UserModel(
id: json["id"],
name: json["name"],
username: json["username"],
email: json["email"],
address: Address.fromJson(json["address"]),
phone: json["phone"],
website: json["website"],
company: Company.fromJson(json["company"]),
);
@override
Map<String, dynamic> toJson() => {
"id": id,
"name": name,
"username": username,
"email": email,
"address": address!.toJson(),
"phone": phone,
"website": website,
"company": company!.toJson(),
};
- Your class will be such as.
class UserModel extends IBaseModel<UserModel> {
UserModel({
this.id,
this.name,
this.username,
this.email,
this.address,
this.phone,
this.website,
this.company,
});
int? id;
String? name;
String? username;
String? email;
Address? address;
String? phone;
String? website;
Company? company;
@override
fromJson(Map<String, dynamic> json) => UserModel(
id: json["id"],
name: json["name"],
username: json["username"],
email: json["email"],
address: Address.fromJson(json["address"]),
phone: json["phone"],
website: json["website"],
company: Company.fromJson(json["company"]),
);
@override
Map<String, dynamic> toJson() => {
"id": id,
"name": name,
"username": username,
"email": email,
"address": address!.toJson(),
"phone": phone,
"website": website,
"company": company!.toJson(),
};
}
- Json parser methods.
- Parse json with main thread.
// If you want parse json object
UserModel user = UserModel().jsonParser(response.body);
// If you want parse json array
List<UserModel> userList = UserModel().jsonParser(response.body);
- Parse json with multi thread.
// If you want parse json object
UserModel user = await UserModel().backgroundJsonParser(response.body);
// If you want parse json array
List<UserModel> userList = await UserModel().backgroundJsonParser(response.body);
- Convert your model to json.
- Convert your model to json with main thread.
// If you want convert your Model
String json = userModel.convertToJson();
// If you want convert your List of Model
String json = userModel().convertToJson(list);
- Convert your model to json with multi thread.
// If you want convert your Model
String json = await userModel.backgroundConvertToJson();
// If you want convert your List of Model
String json = await userModel().backgroundConvertToJson(list);