From Clomosy Docs

JSON (JavaScript Object Notation) is a lightweight, human-readable format used for data exchange. JSON consists of key-value pairs and arrays.

Using JSON with Databases

Define a TCLJSONQuery object to work with JSON datasets in Clomosy applications.

var
qry:TCLJSONQuery;

Create the TCLJSONQuery object

qry = TCLJSONQuery.Create(nil); 

Converting JSON Data

Use the ClDataSetFromJSON function to take a JSON array and convert it into a dataset object.

Example

qry = Clomosy.ClDataSetFromJSON('[{"name":"Anna","age":20},{"name":"David","age":27}]');

Converting Datasets to JSON

Use the DBDatasetGetAsJSON function to retrieve a dataset from the database and convert it into JSON format.

var jsonStr: String;
jsonStr = Clomosy.DBDatasetGetAsJSON(SearchCode); // searchCode : TclSqlQuery;

Using JSON Data

Use the getJSONString property to return the data inside a TCLJSONQuery object as a JSON string.

var 
qry: TCLJSONQuery;
qry = TCLJSONQuery.Create(nil);
qry = Clomosy.ClDataSetFromJSON('[{"name":"Arda","age":20},{"name":"Ayse","age":27}]');
ShowMessage(qry.getJSONString);

Counting JSON Records

Use the RecordCount property to return the number of records in a TCLJSONQuery object.

var 
recordCount: Integer;
recordCount = qry.RecordCount;
ShowMessage(recordCount);

JSON data is transformed into a TCLJSONQuery object. This object contains the JSON data and allows query operations to be performed on it. Following this, operations can be performed on this data.

Example

var
  qry: TCLJSONQuery;  
{
  try
    qry = TCLJSONQuery.Create(nil);  
    qry = Clomosy.ClDataSetFromJSON('[{"name":"Anna","age":20},{"name":"David","age":27}]');  
    with qry do
    {
      if (Found) 
      {
        First; 
        while (not EOF)  // Loop until the end of the dataset is reached
        {
          ShowMessage(FieldByName('name').AsString);  // Display the 'name' field of each record
          Next;  // Move to the next record
        }
      }
    }
  except
    // If an error occurs, display the exception class and message
    ShowMessage('Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage);
  }
}

See Also