Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.2.0+2

dson_adapter

JSON mit weniger Code generiert (build_runner) in Dart-Klasse umwandeln

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
11
Likes
31
Pub-Punkte
150

Paket installieren

flutter pub add dson_adapter

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

DsonAdapter ist ein Codegenerierungspaket für Flutter, das die Umwandlung von JSON in Dart-Klassen mit minimalem Boilerplate vereinfacht. Mit build_runner generiert es automatisch Serialisierungs- und Deserialisierungslogik und reduziert manuelles Codieren. Für Entwickler konzipiert, die eine effiziente, typsichere JSON-Verarbeitung ohne wiederholten Code benötigen. Es integriert sich nahtlos in Flutter-Projekte auf allen wichtigen Plattformen und verbessert Entwicklungsgeschwindigkeit und Wartbarkeit.

Anwendungsfälle

  • JSON-Serialisierer automatisch generieren
  • Reduzierung von Boilerplate in Datenmodellen
  • Vereinfachung der API-Antwortanalyse
  • Integration mit RESTful-Diensten
  • Typsichere JSON-Verarbeitung aktivieren
  • Unterstützung von plattformübergreifenden Anwendungen

Hauptmerkmale

  • Automatische Codegenerierung über build_runner
  • Minimale Einrichtung erforderlich
  • Typsichere JSON-Serrialisierung
  • Unterstützt verschachtelte Objekte
  • Effizienter Laufzeit-Performance
  • Plattformübergreifende Kompatibilität

Geeignet für

  • Flutter-Entwickler, die JSON-APIs verwenden
  • Teams, die der Code-Wartbarkeit Priorität einräumen
  • Projekte, die eine schnelle Prototypenerstellung erfordern
  • Apps mit komplexen JSON-Strukturen
  • Entwickler, die manuelle Serialisierung vermeiden
  • Benutzer, die build_runner-Workflows verwenden

Hinweise

  • build_runner muss eingerichtet werden
  • Nur Build-Zeit-Abhängigkeit
  • Nicht geeignet für Laufzeit-JSON-Parsing
  • Eingeschränkte Anpassung ohne zusätzliche Konfiguration
  • Dart-Klassen benötigen korrekte Anmerkungen
  • Kann die Build-Zeit leicht erhöhen

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

DSON

Convert JSON to Dart Class withless code generate(build_runner).

A simple Object

class Person {
  final int id;
  final String name;
  final int age;

  Person({
    required this.id,
    required this.name,
    required this.age,
  });
}

Convert json to Object:

main(){
     final jsonMap = {
      'id': 1,
      'name': 'Joshua Clak',
      'age': 3,
    };

    Person person = dson.fromJson(jsonMap, Person.new);

    print(person.id);
    print(person.name);
    print(person.age);
}


A complex object:

For complex objects it is necessary to declare the constructor in the inner property;

main(){
    final jsonMap = {
      'id': 1,
      'name': 'MyHome',
      'owner': {
        'id': 1,
        'name': 'Joshua Clak',
        'age': 3,
      },
    };

    Person person = dson.fromJson(
      jsonMap,
      Person.new,
      inner: {
        'owner':  Person.new,
      }
    );

    print(person);
}

A complex object with List:

For work with a list, it is necessary to declare the constructor in the inner property and declare the list resolver in the resolvers property.

main(){
    final jsonMap = {
      'id': 1,
      'name': 'MyHome',
      'owner': {
        'id': 1,
        'name': 'Joshua Clak',
        'age': 3,
      },
      'parents': [
        {
          'id': 2,
          'name': 'Kepper Vidal',
          'age': 25,
        },
        {
          'id': 3,
          'name': 'Douglas Bisserra',
          'age': 23,
        },
      ],
    };

    Home home = dson.fromJson(
      // json Map or List
      jsonMap,
      // Main constructor
      Home.new,
      // external types
      inner: {
        'owner': Person.new,
        'parents': ListParam<Person>(Person.new),
      },
    );

    print(home);
}

DSON Have ListParam and SetParam for collection.

When API replace Param Name (Set aliases):

You need to declare within the aliases map the object type that has changed in the key, and in the value, a map with the old key as the key and the new key as the value.

main(){
    final jsonMap = {
      'id': 1,
      'name': 'MyHome',
      'master': {
        'key': 1,
        'name': 'Joshua Clak',
        'age': 3,
      },
      'parents': [
        {
          'key': 2,
          'name': 'Kepper Vidal',
          'age': 25,
        },
        {
          'key': 3,
          'name': 'Douglas Bisserra',
          'age': 23,
        },
      ],
    };

    Home home = dson.fromJson(
      // json Map or List
      jsonMap,
      // Main constructor
      Home.new,
      // external types
      inner: {
        'owner': Person.new,
        'parents': ListParam<Person>(Person.new),
      },
      // Param names Object <-> Param name in API
      aliases: {
        Home: {'owner': 'master'},
        Person: {'id': 'key'}
      }
    );

    print(home);
}

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.