Components | All | New | MacOS | Windows | Linux | iOS | ||||
Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old |
Queries value from JSON path.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
JSON | 6.1 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameter | Description | Example | Flags |
---|---|---|---|
json | A JSON text or reference. | "{\"people\":[{\"first\":\"Christian\",\"last\":\"Schmitz\",\"city\":\"Nickenich\"}]}" | |
Path | The path through the json hierarchy as list. For object, pass name of item to choose. For array pass index. |
"people¶0¶last" | |
Flags | Pass 1 to return as value, e.g. text or number. Pass 0 (or nothing) to return as JSON. Add 2 to return empty in case of error, e.g. value not existing. (new in 7.5) |
Optional |
Returns value or error.
Query people:
MBS( "JSON.GetPathItem"; "{\"people\":[{\"first\":\"Christian\",\"last\":\"Schmitz\",\"city\":\"Nickenich\"}]}"; "people")
Query people -> first entry:
MBS( "JSON.GetPathItem"; "{\"people\":[{\"first\":\"Christian\",\"last\":\"Schmitz\",\"city\":\"Nickenich\"}]}"; "people¶0")
Query people -> first entry -> last name:
MBS( "JSON.GetPathItem"; "{\"people\":[{\"first\":\"Christian\",\"last\":\"Schmitz\",\"city\":\"Nickenich\"}]}"; "people¶0¶last")
Query IP via ipinfo.io:
Go to Layout [“Table”]
New Record/Request
#Start new session
Set Variable [$curl; Value:MBS("CURL.New")]
#Set URL to load (HTTP, HTTPS, FTP, FTPS, SFTP, etc.)
Set Variable [$result; Value:MBS("CURL.SetOptionURL"; $curl; "http://ipinfo.io")]
#RUN now
Set Variable [$result; Value:MBS("CURL.Perform"; $curl)]
#Check result
Set Field [Table::DebugLog; MBS("CURL.GetDebugMessages"; $curl)]
Set Field [Table::Result; MBS("CURL.GetResultAsText"; $curl; "UTF8")]
If [$result = "OK"]
#Check HTTP error code
Set Variable [$response; Value:MBS("CURL.GetResponseCode"; $curl)]
If [$response = 200]
#Query values from JSON
Set Variable [$json; Value:MBS( "JSON.Parse"; Table::Result )]
Set Field [Table::IP; MBS("JSON.GetPathItem"; $json; "ip"; 1)]
Set Field [Table::Hostname; MBS("JSON.GetPathItem"; $json; "hostname"; 1)]
Set Field [Table::City; MBS("JSON.GetPathItem"; $json; "city"; 1)]
Set Field [Table::Region; MBS("JSON.GetPathItem"; $json; "region"; 1)]
Set Field [Table::Country; MBS("JSON.GetPathItem"; $json; "country"; 1)]
Set Field [Table::Location; MBS("JSON.GetPathItem"; $json; "loc"; 1)]
Set Field [Table::Company or Provider; MBS("JSON.GetPathItem"; $json; "org"; 1)]
Set Variable [$r; Value:MBS( "JSON.Release"; $json )]
End If
End If
#Cleanup
Set Variable [$result; Value:MBS("CURL.Release"; $curl)]
Commit Records/Requests [No dialog]
Query number of entries in array:
MBS( "JSON.GetPathItem"; "{\"IDs\":[1,5,8,2,5]}"; "IDs¶#")
Example result: 5
Try FileMaker syntax with object and array:
MBS( "JSON.GetPathItem"; "{\"people\":[{\"first\":\"Christian\",\"last\":\"Schmitz\",\"city\":\"Nickenich\"}]}"; "people[0]last")
Example result: "Schmitz"
Try FileMaker syntax with objects:
MBS( "JSON.GetPathItem"; "{\"people\":{\"best\":{\"first\":\"Christian\",\"last\":\"Schmitz\",\"city\":\"Nickenich\"}}}"; ".people.best.first"; 3)
Example result: Christian
Try FileMaker syntax with an array:
MBS( "JSON.GetPathItem"; "[1,2,3]"; ".[2]")
Example result: 3
Try FileMaker syntax with objects in brackets:
MBS( "JSON.GetPathItem"; "{\"people\":{\"best.friend\":{\"first\":\"Christian\",\"last\":\"Schmitz\",\"city\":\"Nickenich\"}}}"; "['people']['best.friend']['first']"; 3)
Example result: Christian
This function checks for a license.
Created 3th February 2016, last changed 3th January 2023