Maybe right after you import the JSON data, preprocess it with something
like this:
set the lineDelimiter to "\u"
repeat for each line tLine in tJsonData
put numToCodePoint("0x" & char 1 to 4 of tLine) & char 5 to -1 of
tLine after tNewData
end repeat
put tNewData into tJsonData
Then go on your merry way. Would that work?
Phil Davis
On 3/14/17 9:28 PM, J. Landman Gay via use-livecode wrote:
Thanks. I actually was using jsonImport() with these strings
successfully (no wrapper required) but it has a bug on Android that
makes it unuseable. That's what caused the problem in the first place,
because jsonToArray() doesn't deal with escape sequences.
So I went ahead and wrote a decoder for escaped sequences that works,
but found out I still can't use it. If I replace the escapes before
using jsonToArray(), jsonToArray throws an error; it can't deal with
the UTF16 strings. And I can't run my decoder through the keys of the
converted array after jsonToArray is finished, because they are
already munged into garbage characters by then.
So I'm stuck, I don't see any way to deal with these. I'll put in a
bug report about jsonImport() but it will probably be a while before
it gets fixed.
I hope someone else has an idea.
On 3/14/17 7:13 PM, Jim Lambert via use-livecode wrote:
Jacque wrote:
I'm dealing with non-English languages, and JSON data retrieved from a
database comes in with unicode escape sequences like this: Eduardo
Ba\u00f1uls.
I need to translate those. I can do it by replacing the "\u" with "0x"
and then using numToCodepoint() to get the UTF16 character. But there
could be many of these in the same string, so I'm looking for a
one-shot
command that might just do them all.
JSONImport does it.
If the escaped string is not in JSON format this function will wrap
it in JSON then let JSONImport do its thing.
put deEscape("Eduardo Ba\u00f1uls")
function deEscape pEscapedText
put "{'1':'**dummy**'}" into temp
replace "**dummy**" with pEscapedText in temp
replace "'" with quote in temp
put JSONImport(temp)into pArray
return pArray[1]
end deEscape
Roundabout but does the trick.
Jim Lambert
_______________________________________________
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
--
Phil Davis
_______________________________________________
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