Topics   All   MacOS (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server   Client   Old   Deprecated   Guides   Examples   Videos
New in version: 10.1   10.2   10.3   10.4   10.5   11.0   11.1   11.2   11.3   11.4    Statistic    FMM    Blog  

JSON.GetPathItem

Queries value from JSON path.

Component Version macOS Windows Linux Server iOS SDK
JSON 6.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes ✅ Yes
MBS( "JSON.GetPathItem"; json; Path { ; Flags } )   More

Parameters

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

Result

Returns value or error.

Description

Queries value from JSON path.
The path describes the way through the hierarchy to find the JSON node to return.
Result can be JSON or the value.
If path ends with # in an array, we return number of elements.

Examples

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.GetDebugAsText"; $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

See also

Release notes

  • Version 10.3
    • Fixed JSON.GetPathItem to not complain about out of bounds if option value 2 is used.
  • Version 8.1
    • Fixed JSON.GetPathItem returning numbers with dot incorrectly for non-english localization. Broken in 7.5.
  • Version 7.5

Example Databases

Blog Entries

FileMaker Magazin

Created 3th February 2016, last changed 19th April 2020


JSON.GetObjectSize - JSON.GetStringValue

Feedback: Report problem or ask question.




Links
MBS Xojo Chart Plugins

Start Chat