Components | All | New | MacOS | Windows | Linux | iOS | ||||
Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old |
JSON.SortWithEvaluate
Sorts the JSON array/object using an expression to evaluate.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
JSON | 10.2 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameters
Parameter | Description | Example |
---|---|---|
json | A JSON text or reference. | [2,9,3,1] |
Expression | The expression to evaluate. Can include "leftJSON", "rightJSON" as variables. You can call other MBS JSON functions if needed. |
"(leftJSON) > GetAsNumber(rightJSON)" |
Result
Returns OK or error.
Description
Sorts the JSON array/object using an expression to evaluate.The expression is run every time two values are compared, so keep it quick. It should return 1 if leftJSON is smaller than rightJSON.
Our normal JSON.Sort is faster due to not having the overhead of evaluating expressions.
Examples
Sort with evaluate:
MBS( "JSON.SortWithEvaluate"; "[2,9,3,1]"; "MBS( \"JSON.GetValue\"; leftJSON) < MBS( \"JSON.GetValue\"; rightJSON)" )
Sort a list of object by name:
MBS( "JSON.SortWithEvaluate"; "[
{\"name\": \"Joe\"},
{\"name\": \"Anna\"},
{\"name\": \"Tim\"},
{\"name\": \"John\"}
]"; "JSONGetElement ( leftJSON; \"name\") < JSONGetElement ( rightJSON; \"name\")" )
List files and sort by name:
MBS( "JSON.SortWithEvaluate";
MBS( "Files.ListAsJSON";
MBS("Folders.UserDesktop");
"Size" );
"JSONGetElement ( leftJSON; \"Name\") < JSONGetElement ( rightJSON; \"Name\")" )
List files and sort by size descending:
MBS( "JSON.SortWithEvaluate";
MBS( "Files.ListAsJSON";
MBS("Folders.UserDesktop");
"Size" );
"JSONGetElement ( leftJSON; \"Size\") > JSONGetElement ( rightJSON; \"Size\")" )
List files and sort by modification time stamp:
Let ( [
path = MBS("Folders.UserDesktop");
list = MBS( "Files.ListAsJSON"; path; "CreationTimeStamp¶ModificationTimeStamp" );
sort = MBS( "JSON.SortWithEvaluate"; list; "GetAsTimeStamp(JSONGetElement ( leftJSON; \"ModificationTimeStamp\")) < GetAsTimeStamp(JSONGetElement ( rightJSON; \"ModificationTimeStamp\"))" )
];sort)
See also
Release notes
- Version 10.2
- Added JSON.SortWithEvaluate function to sort JSON objects or arrays with custom expression.
Blog Entries
- News about the MBS FileMaker Plugin 10.2
- Neues MBS FileMaker Plugin 10.2
- MBS FileMaker Plugin 10.2 - More than 6200 Functions In One Plugin
- MBS FileMaker Plugin, version 10.2pr3
- Sort with evaluate in FileMaker
This function checks for a license.
Created 9th April 2020, last changed 22nd May 2023