json_query_dio 0.1.0 copy "json_query_dio: ^0.1.0" to clipboard
json_query_dio: ^0.1.0 copied to clipboard

Thin Dio integration for json_query - pick/map fields straight off a Response.

example/json_query_dio_example.dart

// Run with: dart run example/json_query_dio_example.dart
import 'package:dio/dio.dart';
import 'package:json_query_dio/json_query_dio.dart';

class User {
  final int id;
  final String name;
  final String package;

  User({required this.id, required this.name, required this.package});

  factory User.fromJson(Map<String, dynamic> json) => User(
        id: json['id'] as int,
        name: json['name'] as String,
        package: json['package'] as String,
      );

  @override
  String toString() => 'User(id: $id, name: $name, package: $package)';
}

void main() async {
  final dio = Dio(BaseOptions(baseUrl: 'https://example.com'));

  // Any Dio Response works with these extensions - substituting a manually
  // built one here so this example runs without a real network call.
  final response = Response<dynamic>(
    requestOptions: RequestOptions(path: '/user'),
    data: {
      'data': {
        'user': {
          'id': 123,
          'profile': {'name': 'Ebrahim'},
          'subscription': {
            'package': {'name': 'Fiber'},
          },
        },
      },
    },
  );

  // In a real app: final response = await dio.get('/user');

  final user = response.map<User>(
    {
      'id': '.data.user.id',
      'name': '.data.user.profile.name',
      'package': '.data.user.subscription.package.name',
    },
    User.fromJson,
  );
  print(user);

  dio.close();
}
1
likes
160
points
59
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Thin Dio integration for json_query - pick/map fields straight off a Response.

Repository (GitHub)
View/report issues

Topics

#json #dio #http #mapping

License

MIT (license)

Dependencies

dio, json_query

More

Packages that depend on json_query_dio