ExecuteSQL, JSON, Level: Any

JSON Nuances and Gotchas

This is a resource page for my September 3rd FM Training TV expanded “encore presentation” of a session I did last month at the [Full Access] conference.

Session Description

JSON in FileMaker seems pretty straight-forward… until it isn’t. We will explore a number of traps lurking for the unwary and how to avoid them, a couple tricks to dramatically speed up JSON creation, implicit vs. explicit arrays, the JSONMakeArray function, some helpful JSON custom functions, when it is (and isn’t) okay to use JSONRaw, and various other aspects of the endlessly-fascinating micro-universe that is JSON in FileMaker.

YouTube Link

  • Coming soon

JSON Demo Files

JSON and Related Articles

JSONQuery

Other Resources

ExecuteSQL, JSON, Level: Any

August 2026 Full Access Resource Page

Here are links to articles and resources related to my August 8 [Full Access] presentation, “JSON Nuances and Gotchas”.

Session Description

JSON in FileMaker seems pretty straight-forward… until it isn’t. We will explore a number of traps lurking for the unwary and how to avoid them, a couple tricks to dramatically speed up JSON creation, implicit vs. explicit arrays, the JSONMakeArray function, some helpful JSON custom functions, when it is (and isn’t) okay to use JSONRaw, and various other aspects of the endlessly-fascinating micro-universe that is JSON in FileMaker.

JSON Demo Files

JSON and Related Articles

JSONQuery

Other Resources

JSON, Level: Advanced, Version: FM 26 or later, Virtual List

FM 26: Virtual List with Window UUIDs

Demo file: virtual-list-with-window-uuids-v2.zip (requires FM 26 or later)

Introduction

As the whole world — or the whole FileMaker world at any rate — knows by now, last week saw the release of FileMaker 2026 with a number of compelling new features, as well as improvements to existing features. And almost immediately an abundance of well-written, insightful articles appeared, blossoming like a field of springtime flowers to serve as trusty guides, including…

Meanwhile in this article we’re going to focus on one new feature, and its relevance to the collection of techniques known as virtual list. To quote from the FM 26 release notes:

The Select Window, Close Window, Move/Resize Window, and Set Window Title script steps now support selecting a window by UUID, making it possible to uniquely identify a window even if multiple windows have the same name or if the window’s name has changed. You can use the new Get(WindowUUID) function to get the UUID of the currently active window.

Continue reading “FM 26: Virtual List with Window UUIDs”

JSON, Level: Intermediate, Version: FM 21 or later

Traversing Arrays with Mod() and Floor()

Demo file: traverse-arrays-with-mod-and-floor.zip

Introduction

Today I want to talk about a technique that can come in handy if you need to walk a block of contiguous cells within a 2-dimensional JSON array for either reading and/or writing purposes.

[ 
   [ n, n, n, n, n, n, n, n, n, n, n, n, n, n, n ],
   [ n, n, n, n, n, n, n, n, n, n, n, n, n, n, n ],
   [ n, n, n, n, n, n, n, n, n, n, n, n, n, n, n ],
   [ n, n, n, n, n, n, n, n, n, n, n, n, n, n, n ]
]

The standard approach would be to employ a While within a While, the outer to walk the columns and the inner to walk the rows (or vice-versa). And that’s a very valid way to go about it, but I was wondering whether a 2-dimensional array of arbitrary height and width could be traversed via a single While call. Well it turns out that yes, it is possible, and we’re going to look at an approach that can accomplish this with help from the Mod() and Floor() functions.

Let’s say we have a 4 row × 15 column array, for a total of 60 cells that we want to iterate through. Since JSON uses zero based indexing, we can consider the rows to be numbered 0 – 3 and the columns to be numbered 0 – 14 like so.

Assume that our task is to fill the array with the letters A through Z, one letter per cell, starting with column [0] and populating all the rows in each column before moving on to the next column. Since there are only 26 letters in the English alphabet, after Z has been assigned start with A again, and keep iterating through the sequence until all 60 cells have been populated (and while we’re at it, let’s go with lower-case letters to make it easier on the eyes).

Conceptually, it looks like this…

…and as JSON, like this.


Continue reading “Traversing Arrays with Mod() and Floor()”

JSON, Level: Any, Version: FM 21 or later

April 2026 FM Training Livestream

Here are links to articles and resources related to my April 16 FM Training Livestream presentation: Best of FileMaker Hacks Tips, Tricks and Traps, part 5

YouTube links

Demo Files

FMH Articles

Other Resources

JSONQuery

JSON, Level: Any, Version: FM 21 or later

March 2026 FM Training Livestream

Here are links to articles and resources related to today’s FM Training Livestream presentation.

YouTube link

Demo Files

Resources

JSON, Level: Advanced

March 2026 DIGFM Presentation

Here are links to articles and resources related to my March 12 DIGFM presentation on Tips, Tricks and Traps.

YouTube link

Demo Files

FMH Articles

Other Resources

JSON, Level: Advanced, Summary List, Version: FM 21 or later

JSON Object Destringification

Today we’re going to look at an issue that can crop up in FileMaker JSON processing, and explore some approaches one might take to address this issue. Typically the issue arises with preexisting JSON coming from an API, including, but not limited to, the FM Data and OData APIs.

Demo Files

Note: minimum version to open the files is FM 21, but the examples will run significantly faster in FM 22+.

The Issue

APIs that return data as JSON are sometimes unable to recognize JSON as input, and will pass it as text rather than as an object or array. For example, both of today’s demo files include a text field containing a JSON object (the field name is “json”), and if we retrieve records via the Data API, or via the  Execute FileMaker Data API script step, the “json” field data will come back stringified (i.e., as quoted text) as per this close-up detail…

Continue reading “JSON Object Destringification”

JSON, Level: Advanced

November 2025 FM Training Livestream

Here are links to articles and resources related to today’s FM Training Livestream presentation: Best of FileMaker Hacks Tips, Tricks and Traps, part 3.

YouTube link

Demo Files

FMH Articles

Other Resources

ExecuteSQL, JSON, Level: Any, SQL, Virtual List

October 2025 Full Access Resource Page

Here are links to articles and resources related to presentations/discussions I will be participating in at the [Full Access] un-conference Oct 20-23, 2025.

JSON Demo Files

JSON Articles

JSONQuery

Virtual List Demo Files

Virtual List Articles

SQL Articles