Components All New MacOS Windows Linux iOS
Examples Mac & Win Server Client Guides Statistic FMM Blog Deprecated Old


Returns a row as JSON object.

Component Version macOS Windows Linux Server iOS SDK
FM FMSQL JSON 8.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes ✅ Yes
MBS( "FM.SQL.JSONRecord"; SQLref; Row; FieldNames { ; Flags } )   More


Parameter Description Example Flags
SQLref The reference number returned by FM.SQL.Execute function. $SQLRef
Row The row you like to get.
0 for first row.
FieldNames A list of field names for the JSON.
If you have duplicate entries in the field names, the resulting JSON will have duplicate keys, which can be a problem.
Flags The flags for the json creation.
Pass 1 to get all values as text (empty text instead of null).
Pass 2 to get all dates, times and timestamps in SQL format (formatted by plugin) instead of GetAsText() by FileMaker.
Pass 4 to get arrays instead of objects for the individual rows.
Pass 8 to get containers as objects with name, size and data entries. (new in v12.1)
1+2 Optional


Returns JSON text or error.


Returns a row as JSON object.
You provide list of field names, which should be in same order as fields in SQL result.
Optionally we can return SQL dates, times and timestamps as SQL format.
Containers are returned as Base64 encoded data.

See FM.SQL.XMLRecord for the same as XML.


Query JSON record:

# run query to get some data
Set Variable [ $sql ; Value: MBS( "FM.SQL.Execute"; ""; "SELECT \"First\", \"Last\", Company, \"Photo Container\" FROM Contacts") ]
# query data
Set Variable [ $json ; Value: MBS( "FM.SQL.JSONRecord"; $sql; 0; "First¶Last¶Company¶Photo"; 2) ]
# store result
Set Field [ Contacts::Output ; $json ]
# free memory
Set Variable [ $xml ; Value: MBS( "FM.SQL.Release"; $sql) ]

Query record as JSON:

Let ( [
fields = MBS( "FM.QueryFieldsForTableName"; "Contacts");
Records = MBS( "FM.SQL.Execute"; ""; "SELECT \"" & substitute(fields; ¶; "\", \"") & "\" FROM \"Contacts\" WHERE \"First\" = ?"; "Joe");

json = MBS( "FM.SQL.JSONRecord"; Records; 0; fields);
r = MBS( "FM.SQL.Release"; Records )]
; json )

Query current record as JSON:

// get field list
fields = MBS( "FM.QueryFieldsForTableName"; Get(LayoutTableName));
// query the fields using that fieold list for current record
sql = MBS( "FM.SQL.Execute"; Get(FileName); "SELECT \"" & Substitute(fields; ¶; "\", \"") & "\" FROM \"" & Get ( LayoutTableName ) & "\" WHERE RowID = ?"; Get( RecordID ));
// and query JSON
json = MBS( "FM.SQL.JSONRecord"; sql; 0; fields );
// free SQL result
R = MBS("FM.SQL.Release"; sql)
]; json)

See also

Release notes

Blog Entries

This function checks for a license.

Created 4th March 2018, last changed 1st May 2023