json_schema_matcher 1.0.3 copy "json_schema_matcher: ^1.0.3" to clipboard
json_schema_matcher: ^1.0.3 copied to clipboard

A Dart library for JSON schema validation using native testing framework matchers with strongly-typed validators and detailed error messages.

example/json_schema_matcher_example.dart

import 'package:json_schema_matcher/json_schema_matcher.dart';
import 'package:test/test.dart';

void main() {
  test('user validation', () {
    final userData = {
      'id': 1,
      'name': 'João Silva',
      'email': 'joao@email.com',
      'age': 30,
    };

    expect(
      userData,
      isJsonObject({
        'id': isA<int>(),
        'name': isA<String>(),
        'email': isA<String>(),
        'age': isA<int>(),
      }),
    );
  });

  test('user with optional fields', () {
    final userData = {
      'id': 1,
      'name': 'Maria Santos',
      'email': 'maria@email.com',
    };

    expect(
      userData,
      isJsonObject({
        'id': isA<int>(),
        'name': isA<String>(),
        'email': isA<String>(),
        'phone': isA<String?>(), // optional field
      }),
    );
  });

  test('array of users', () {
    final users = [
      {'id': 1, 'name': 'Alice'},
      {'id': 2, 'name': 'Bob'},
    ];

    expect(
      users,
      isJsonArray({
        'id': isA<int>(),
        'name': isA<String>(),
      }),
    );
  });

  test('array of strings', () {
    expect(
      ['dart', 'json', 'validation'],
      isJsonArrayOf(isA<String>()),
    );
  });

  test('nested object', () {
    final data = {
      'user': {
        'id': 1,
        'name': 'Pedro',
        'profile': {
          'firstName': 'Pedro',
         // 'lastName': 'Costa',
        },
      },
    };

    expect(
      data,
      isJsonObject({
        'user': isJsonObject({
          'id': isA<int>(),
          'name': isA<String>(),
          'profile': isJsonObject({
            'firstName': isA<String>(),
            'lastName': isA<String>(),
          }),
        }),
      }),
    );
  });
}
2
likes
160
points
71
downloads

Publisher

unverified uploader

Weekly Downloads

A Dart library for JSON schema validation using native testing framework matchers with strongly-typed validators and detailed error messages.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

test

More

Packages that depend on json_schema_matcher