I am using multidimensional arrays to process data read from JSON files.

Some of the data in the JSON files can be represented in alternative forms in 
files from different sources.

For example a field named “status” may be represented as either:

“status": {
    "text": “active"}

or

“status": {“active”}

To recognize both forms I use code (after transforming JSON to an array tArray] 
such as:

Local tArray, tStatus

Put tArray[“status”] into tStatus
If tStatus is empty then
        put tArray[“status”][“text”] into tStatus
End if

I have discovered that if tArray[“status”][“text”] contains a value then 
tArray[“status”] is not empty (as expected), so my test fails. 

However the expression ‘the value of tArray[“status”]’ return empty and calling 
 - answer tArray[“status”] returns an empty (null) string.

Is this a bug or a (perhaps) a logical outcome of how LC implements arrays?

I have often used the form 'if tArray[“key1”] is empty' to determine whether an 
array element hold a value but this breaks if tArray[“key1”][“key2”] holds a 
value.

Try the following in the message box: put "data" into tA["A"]["B"];answer 
tA["A"] is empty

The result is false! Livecode reports that tA[“A”] is not empty

However entering the following in the message box returns true!

 put "data" into tA["A"]["B"];answer the value of tA["A"] is empty

Henry


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to