Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Pascal
  3. dataset-serialize

dataset-serialize

MITPascalv.2.7.0

A Delphi and Lazarus (FPC) library for bidirectional conversion between JSON and DataSets, including validation and structure management.

GitHubGitHub
739 stars182 forks0 contributors

What is dataset-serialize?

DataSet Serialize is a library for Delphi and Lazarus (Free Pascal) that simplifies the serialization and deserialization of data between JSON and DataSets. It provides a comprehensive set of features to export DataSet records to JSON, import JSON data into DataSets, validate JSON against DataSet constraints, and manage DataSet field structures. This makes it particularly valuable for developers building RESTful APIs, data-driven applications, or any system requiring seamless data interchange between database layers and JSON formats.

Target Audience

Delphi and Lazarus (Free Pascal) developers building RESTful APIs, data-driven desktop applications, or systems that require JSON-based data interchange with database layers. It is especially useful for those working with FireDAC or similar database components and needing to handle master-detail relationships.

Value Proposition

Developers choose DataSet Serialize because it integrates seamlessly via class helpers, requiring minimal setup, and offers practical, real-world functionality like JSON validation, structure management, and data merging. Its unique selling point is the comprehensive handling of DataSet operations—including nested JSON via master-detail, record state management for REST operations, and extensive customization options—all in a single, easy-to-use library.

Overview

JSON to DataSet and DataSet to JSON converter for Delphi and Lazarus (FPC)

Use Cases

Best For

  • Building RESTful APIs in Delphi or Lazarus that require JSON serialization/deserialization of database records.
  • Exporting DataSet records to JSON for client-side consumption in web or mobile applications.
  • Importing JSON data into DataSets with automatic handling of record states (inserted, modified, deleted) for REST API operations.
  • Validating incoming JSON payloads against DataSet field constraints in server-side applications.
  • Managing and persisting DataSet field structures (properties like name, type, size) in JSON format.
  • Updating existing DataSet records by merging changes from JSON objects, ideal for REST API PUT operations.

Not Ideal For

  • Projects targeting non-Windows platforms (e.g., macOS, Linux, or mobile with Delphi FMX), as it only supports Win32 and Win64.
  • Applications using database components other than FireDAC that require advanced change tracking, since features like AOnlyUpdatedRecords are FireDAC-specific.
  • Systems needing complex JSON schema validation or custom business logic beyond basic required field checks, as validation is tied to DataSet constraints.
  • Teams seeking a lightweight, standalone JSON library without DataSet dependencies, as it's tightly integrated with Delphi's data access layers.

Pros & Cons

Pros

Seamless Integration

Uses class helpers to add methods directly to TDataSet, enabling easy incorporation into existing Delphi/Lazarus projects without invasive code changes, as shown in the minimal setup examples.

Comprehensive Serialization

Supports full DataSet to JSON conversion and vice versa, including nested JSON via master-detail relationships and handling record states (inserted, modified, deleted) for REST operations, detailed in the LoadFromJSON section.

Built-in Validation

Validates JSON against DataSet field constraints, returning detailed error messages for missing required fields, which is practical for API input validation, as demonstrated in the ValidateJSON examples.

Flexible Configuration

Offers extensive customization options like date formats, case naming conventions, and export/import rules, allowing fine-tuned behavior for diverse use cases, listed in the Configurations section.

Cons

Platform Limitations

Only supports Win32 and Win64 platforms, excluding cross-platform development with Delphi's FireMonkey or Lazarus on other operating systems, as indicated by the badges in the README.

FireDAC Dependency

Advanced features like exporting only updated records require FireDAC with CachedUpdates enabled, limiting compatibility with other database components such as dbExpress or UniDAC, noted in the ToJSONObject parameters.

Basic Validation Scope

Validation is limited to checking if required fields are present; it doesn't support JSON schema validation, custom rules, or complex data types, which may be insufficient for sophisticated applications.

Frequently Asked Questions

Quick Stats

Stars739
Forks182
Contributors0
Open Issues1
Last commit19 days ago
CreatedSince 2019

Tags

#import#pascal#converter#rest-api#serialize#database-integration#export#lazarus#json-serialization#delphi#data-validation#json#dataset#data-conversion#fpc

Built With

L
Lazarus
F
Free Pascal
D
Delphi

Included in

Pascal2.0k
Auto-fetched 1 day ago

Related Projects

Json Data ObjectsJson Data Objects

JSON parser for Delphi 2009 and newer

Stars455
Forks170
Last commit28 days ago
NeonNeon

JSON Serialization library for Delphi

Stars354
Forks98
Last commit3 months ago
SuperObjectSuperObject

SuperObject is a comprehensive parser and writer for JSON and XML data formats, designed specifically for Delphi and FreePascal developers. It provides a unified interface for handling structured data across multiple platforms, including Windows, Linux, and macOS. This toolkit simplifies data interchange tasks by offering intuitive access methods and supporting non-canonical JSON forms. ## Key Features - **JSON and XML Support** — Reads and writes both JSON and XML formats, enabling flexible data interchange. - **Path-Based Access** — Allows querying and manipulating data using concise path expressions for productivity. - **RTTI Marshalling** — Integrates with Delphi's RTTI for automatic serialization and deserialization of records and classes. - **Non-Canonical Parsing** — Handles unquoted identifiers, unescaped strings, and hexadecimal values in JSON. - **Cross-Platform Compatibility** — Works on win32, win64, linux32, linux64, and macOS Intel architectures. - **Enumerator Support** — Enables easy iteration over arrays and objects using Delphi enumerators. ## Philosophy SuperObject emphasizes simplicity and productivity, providing a single, consistent interface (ISuperObject) for all data types to reduce complexity in Delphi and FreePascal applications.

Stars337
Forks167
Last commit4 years ago
XSuperObjectXSuperObject

Delphi Cross Platform Rapid JSON

Stars329
Forks122
Last commit3 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub