jsonImport or JSONToArray
    Douglas Ruisaard 
    dougr at telus.net
       
    Sun Oct 21 18:45:11 EDT 2018
    
    
  
Has anyone recently tried to create a standalone app which includes either a jsonImport or JSONToArray call?
While my code works perfectly when run within the LC API, once a standalone is produced, it chokes  on either one of these calls.  I've reduced the code to its bare essentials.  A sample/simple JSON string I am trying is:
{
 "array": [
   1,
   2,
   3
 ],
 "boolean": true,
 "null": null,
 "number": 123,
 "object": {
   "a": "b",
   "c": "d",
   "e": "f"
 },
 "string": "Hello World"
}
This string is embedded as a Custom Property within a button.  The button calls the following:
on mouseUp
// just empty everything to make sure things are in a known state
     put empty into temp
     put empty into tArray
     put empty into dispArray
     put empty into tJson
     
     get the json of button "ThingSpeak_Fetch"
     put it into testJson
     
// display the JSON before it is converted into an array
     answer "Simple JSON example:" & cr & testJson
     
// this line (either "version") will choke the standalone... it doesn't lock it up in the API
     put JsonToArray(testJson) into tArray
     //put jsonImport(testJson) into tArray
     
     put displayArrayData(tArray,  "") into dispArray
     answer dispArray
end mouseUp
function displayArrayData pArray, pIndent
     # create the variable that loops through the keys in the array
     local tKey
     if pArray is an array then
          # print information to indicate that we are entering a new nested level of the array
          get "Array" & return
          # print full stops that allow the reader to track the depth of an element
          put "." after pIndent
          # create the indentation
          put tab after pIndent
          repeat for each key tKey in pArray
               # call displayArrayData with a nested array
               put format("%s[%s] => %s\n", pIndent, tKey, displayArrayData (pArray[tKey], pIndent)) after it
          end repeat
          delete the last char of it
          return it
     else
          return pArray
     end if 
end displayArrayData
The function call simply outputs the converted array.... and will do so when this code is run from within the API ... but create a Windows standalone and the array output is never generated.
I've tried this in Windows 7 Enterprise SP1, LC: 8.1.9, 8.1.10 and 9.0.1 ... also tried on MAC Sierra (10.12.6) and LC 8.1.9
All platforms behave identically as described above
Any help would be appreciated... meanwhile I'll be submitting this to LC directly
Douglas Ruisaard
Trilogy Software
(250) 573-3935
    
    
More information about the use-livecode
mailing list