Monte,

The problem is that no web api expects an object with numeric keys, it
expects an honest, real, array. The fact that LC arrays are actually
hashmaps is awesome, I love them as well, but it still makes it impossible
to export arrays from LC which are really common on Web APIs. JSONExport
library should check if the keys of a given array level are all numeric and
cast it to a list type.

Thats is what I say when RunRev web integration is not good enough. They
provide a json import and export function but it doesn't work well enough
for you to call any API that expects an array... We always go like 70% or
80% of the way in a feature and then there is a new LC Infinite Ultra
Campaign to get some new stuff in when the current stuff is not yet ready.

Same thing with executing JS inside a WebView Widget, we need to use the
"do in widget" statement but this doesn't have a way to bind values, so you
end up assembling a JS string by hand in hopes that you got all the correct
quotes right because you need to inline all params as literal objects...

:-(

On Mon, Apr 30, 2018 at 10:42 PM, Monte Goulding via use-livecode <
use-livecode@lists.runrev.com> wrote:

>
>
> > On 1 May 2018, at 11:29 am, Mark Wieder via use-livecode <
> use-livecode@lists.runrev.com> wrote:
> >
> > On 04/30/2018 03:15 PM, Ralph DiMola via use-livecode wrote:
> >> Andre,
> >> I'm using JSONToArray and ArrayToJSON for round trip with no problems.
> I'm
> >> storing an LC config array in a JSON text file, then later read the file
> >> back into an LC array. The only criticism I have is the formatting of
> the
> >> JSON in the text file could be better for manual changes with a text
> editor.
> >> Other than that it faithfully saves/recreates the LC array.
> >
> > ... as long as you don't have to deal with JSON lists.
> >
> > https://quality.livecode.com/show_bug.cgi?id=19698
>
> ArrayToJSON deals with JSON list differently to JSONExport. ArrayToJSON
> uses mergJSON which checks if the array keys are a numeric sequence and
> assumes it’s a list. There is a way to force it to be an object if
> required.
>
> JSONExport on the other hand is done in LCB and LCB has a proper list
> type. The issue is when passing a LCS array to LCB there is no way for the
> engine to know for sure if your array is a list or map so it keeps it as a
> map with string keys. In the long run if we ever get proper lists in LCS
> then JSONExport will likely do as you are expecting.
>
> Cheers
>
> Monte
> _______________________________________________
> 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
>



-- 
http://www.andregarzia.com -- All We Do Is Code.
http://fon.nu -- minimalist url shortening service.
_______________________________________________
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