New JSON Functions in FileMaker 2024/2025: What Developers Need to Know

Posted by Frank Kobola on October 8, 2025

New JSON Functions in FileMaker 2024/2025: What Developers Need to Know

With the release of FileMaker 2024 and 2025, Claris has significantly expanded its native JSON functions, making it easier for developers to work with structured data, integrate APIs, and build modern, scalable FileMaker solutions.

If you’re building or maintaining a FileMaker system, understanding these new JSON capabilities is essential to creating faster, more efficient, and more integrated applications.

Why JSON is a Big Deal in FileMaker

JSON is the data format of modern web services, APIs, OData and cloud platforms. FileMaker’s JSON functions let you generate, parse, and manipulate JSON directly within calculations and scripts.

If you want to:

  • Integrate with third-party APIs

  • Build flexible data structures

  • Communicate data more effectively within all FileMaker applications

  • Power Claris Connect and Event-Driven Connect workflows

…you need to master FileMaker’s JSON tools.

What’s New in FileMaker 2024 and 2025 for JSON

The most effective patterns combine newer capabilities like JSONGetElementType (2024) and the 2025 performance gains with long‑standing JSON toolsJSONListKeys, JSONListValues, JSONSetElement, and JSONGetElement. Use the newer functions to validate/branch, and the established ones to iterate, extract, and assemble payloads.

JSONGetElementType (2024)

  • Purpose: Returns the data type of a specified JSON element.

  • Why it matters: Lets you dynamically validate or branch logic based on whether a JSON value is an object, array, string, number, or boolean.

Set Variable [ $payload ; Value:

    “{ \”customer\”: { \”name\”: \”Alice\”, \”age\”: 30, \”address\”: { \”city\”: \”Boston\” } } }”

]


Set Variable [ $elementType ;

    Value: JSONGetElementType ( $payload ; “customer.address” )

]

// Returns: “object”

JSONListKeys (2018)

  • Purpose: Returns a list of all keys in a JSON object.

  • Why it matters: Essential for iterating through dynamic JSON objects when you don’t know the keys ahead of time.

Set Variable [ $payload ; Value:

    “{ \”customer\”: { \”name\”: \”Alice\”, \”age\”: 30, \”email\”: \”alice@example.com\” } }”

]


Set Variable [ $keys ;

    Value: JSONListKeys ( $payload ; “customer” )

]


// $keys returns:

// name

// age

// email

JSONListValues (2018)

  • Purpose: Returns a list of all values in a JSON object or array.

  • Why it matters: Simplifies extracting data from APIs or nested JSON arrays without needing to parse each element manually.

Set Variable [ $payload ; Value:

    “{ \”orders\”: [ \”Order001\”, \”Order002\”, \”Order003\” ] }”

]


Set Variable [ $values ;

    Value: JSONListValues ( $payload ; “orders” )

]


// $values returns:

// Order001

// Order002

// Order003


Improved Performance (2025)

  • Parsing and manipulating large JSON objects is faster and more memory-efficient in FileMaker 2025.

  • This is critical when handling big API responses or storing complex JSON in fields.


Practical Use Cases for Developers

1. API Integrations

When calling external APIs, these new functions make it easier to:

  • Parse API responses dynamically.

  • Validate data types before inserting into records.

  • Log errors or unexpected responses.

Example:

Set Variable [ $apiResponse ; Value: “{ \”status\”: \”success\”, \”data\”: { \”id\”: 123, \”amount\”: 49.99 } }” ]


If [ JSONGetElementType ( $apiResponse ; “data” ) = “object” ]

    Set Variable [ $transactionID ; Value: JSONGetElement ( $apiResponse ; “data.id” ) ]

    Set Variable [ $amount ; Value: JSONGetElement ( $apiResponse ; “data.amount” ) ]

End If

2. Dynamic UI Generation

  • Use JSONListKeys to build dynamic interfaces or repeat portals based on the number of returned fields.

Example:

Set Variable [ $fields ; Value: JSONListKeys ( $payload ; “customer” ) ]

Set Variable [ $fieldCount ; Value: ValueCount ( $fields ) ]


# Use $fieldCount to dynamically generate UI elements.

3. Claris Connect Workflows

  • Event-Driven Connect payloads rely on JSON—these functions help you parse incoming data and route it appropriately.

Example:

Set Variable [ $payload ; Value: Get(ScriptParameter) ]

Set Variable [ $eventType ; Value: JSONGetElement ( $payload ; “event.type” ) ]


If [ $eventType = “customer_update” ]

    # Process customer update logic

End If

4. Data Storage and Flexibility

  • Instead of creating new tables for every data variation, store flexible JSON blobs that can adapt as your data structures evolve.

Example:

Set Field [ Customer::Metadata ; JSONSetElement ( “” ;

    [ “preferences.newsletter” ; “true” ; JSONBoolean ] ;

    [ “preferences.language” ; “en” ; JSONString ]

)]


Quick Reference Table

Function

Introduced

Use Case

JSONGetElementType

2024

Validate data types

JSONListKeys

2018

Retrieve dynamic object keys

JSONListValues

2018

Extract lists of values


Developer Tip

When working with external APIs, combine these new JSON functions with Try / Catch scripting patterns, data validation routines, and robust error logging to ensure your integrations are stable and reliable.

Ready to Build Smarter with JSON?

If you’re maintaining an older FileMaker system, you’re missing out on these time-saving, game-changing functions. Contact us to discuss upgrading your solution or building new integrations powered by FileMaker 2025’s JSON toolkit.

Need help with your next integration? Let’s modernize your FileMaker environment today.