JSON Formatter
Format JSON and generate models
Dart firstTS / Kotlin / Java / Swift
Output
Root type: AppConfig
Dart
import 'dart:convert';
AppConfig appConfigFromJson(String str) => AppConfig.fromJson(json.decode(str) as Map<String, dynamic>);
String appConfigToJson(AppConfig data) => json.encode(data.toJson());
class Owner {
Owner({
required this.fullName,
required this.email,
});
final String fullName;
final String email;
factory Owner.fromJson(Map<String, dynamic> json) => Owner(
fullName: json['full_name'] as String,
email: json['email'] as String,
);
Map<String, dynamic> toJson() => {
'full_name': fullName,
'email': email,
};
}
class Version {
Version({
required this.name,
required this.buildNumber,
});
final String name;
final int buildNumber;
factory Version.fromJson(Map<String, dynamic> json) => Version(
name: json['name'] as String,
buildNumber: json['build_number'] as int,
);
Map<String, dynamic> toJson() => {
'name': name,
'build_number': buildNumber,
};
}
class AppConfig {
AppConfig({
required this.id,
required this.name,
required this.isActive,
required this.rating,
required this.tags,
required this.owner,
required this.versions,
});
final int id;
final String name;
final bool isActive;
final double rating;
final List<String> tags;
final Owner owner;
final List<Version> versions;
factory AppConfig.fromJson(Map<String, dynamic> json) => AppConfig(
id: json['id'] as int,
name: json['name'] as String,
isActive: json['is_active'] as bool,
rating: (json['rating'] as num).toDouble(),
tags: ((json['tags'] as List<dynamic>?) ?? const []).map((item) => item as String).toList(),
owner: Owner.fromJson(json['owner'] as Map<String, dynamic>),
versions: ((json['versions'] as List<dynamic>?) ?? const []).map((item) => Version.fromJson(item as Map<String, dynamic>)).toList(),
);
Map<String, dynamic> toJson() => {
'id': id,
'name': name,
'is_active': isActive,
'rating': rating,
'tags': tags.map((item) => item).toList(),
'owner': owner.toJson(),
'versions': versions.map((item) => item.toJson()).toList(),
};
}