Brian Dunning's FileMaker Custom Functions

IsValidJSON ( JSON )

Used to determine if we are passing valid JSON

  Average rating: 5.0 (4 votes) Log in to vote

Kyle Williams   Kyle Williams - Show more from this author
Augusto Digital
https://www.youtube.com/channel/UCpJlB7cmVNMjbjgY96MEsng

Share on Facebook Share on Twitter

  Sample input:
IsValidJSON( "Random Text" )
  Sample output:
0

  Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

Used to determine if we are passing valid JSON
Produces a Boolean Value..

I find this function useful when I'm trying to convert scripts with old parameters to utilize JSON scripting so that none of the old scripts break during the transition process:

IF[ IsValidJSON( Get(ScriptParameter)) ]
//create variables using new JSON scripting
ELSE
//continue with old GetValue( Get(ScriptParameter), 1 ) variables
END IF

 

Comments

Karen Weaver   Karen Weaver, Desert Dog Technology, Inc.
Oct 8, 2019
Hi Kyle! This is useful - I've been using a subscript for the same purpose but that can really be annoying and slow things down when I am debugging -this is much simpler and I wish I'd thought of it instead. My only warning is that if the JSON parameter is empty - it does not return invalid JSON - empty is still valid. For my purposes, in a complex system - I do need to test for empty parameters. So I modified it a bit to have it return an error if empty, so:

not isEmpty (JSON) and Left( JSONFormatElements ( JSON ), 1) <> "?"

Gives me the result I want. On those occasions where the parameters are optional, I can test for empty first and then divert. Again, thanks for this!
 
Kyle Williams   Kyle Williams, Augusto Digital
Nov 10, 2020
Hi Karen, glad you like. I use if for converting my old scripts to using JSON parameters. At the start of the script I check to see if the parameter is valid json and if so then run the JSON script otherwise, continue with the old script. Once the transition is complete and I know that no more scripts are calling it with the old parameters then I can comment out the old script until I'm sure there are no issues.. after a bit of time and there are no complaints, then I know it is finally safe to remove the legacy code.. I use this all the time :)
 
Kyle Williams   Kyle Williams, Augusto Digital
Nov 10, 2020
PS, thanks for the tip.. I will update it to account for the empty values..
 
Gijs Vroom   Gijs Vroom, Emerce
Apr 18, 2022
Hi Kyle,

Thanks for this, I started using it.

The comma needs to be semicolon though.

not isEmpty (JSON) and Left( JSONFormatElements ( JSON ); 1) <> "?"
 

Log in to post comments.

 

Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.

Support this website.

This library has been a free commmunity resource for FileMaker users and developers for 20 years. It receives no funding and has no advertisements. If it has helped you out, I'd really appreciate it if you could contribute whatever you think it's worth: