Rod McCall wrote:
I am currently developing a server application for a car simulator and
part of it may use JSON. I'd appreciate any pointers to tutorials or
even links to libraries on how to use JSON in LiveCode, therefore if
you have any tips in this direction please let me know. . Otherwise I
may have to revert to CSV or XML. From memory LiveCode did have some
nice XML features but it's a while since I tried them out.

The libJSON stack Andy suggested should work well for what you need:
<http://revonline2.runrev.com/stack/82/LibJson-1-0b>

FWIW, if by chance you're also using RevServer on the server end you may find working with encoded arrays even more convenient, and certainly much faster.

Compressed encoded arrays have become my favorite transport vehicle for data, running them through base64Encode to make them extra network-safe:

  put base64Encode(compress(arrayEncode(tArray))) into tOutData

On the receiving end it's probably best to handle each of the reversing functions in a set of "try" statements to avoid execution errors in the event that anything happened to the data in transit:

function PayloadToArray pArray
  try
    put base64Decode(pArray) into pArray
  catch tErr
    throw "Data not base64-encoded"
  end try
  --
  try
    put decompress(pArray) into pArray
  catch tErr
    throw "Data not compressed"
  end try
  --
  try
    put arrayDecode(pArray) into pArray
  catch tErr
    throw "Data not array-encoded"
  end try
  --
  return pArray
end PayloadToArray


Looking at the BSON format used by a growing number of data stores like MongoDB, it's a natural compliment to JSON but much more compact and with simpler parsing. But of course if you're writing for a browser client or a server over which you have no control over the output, converting to and from JSON is about as good as it gets for expressing hierarchical structures easily.

But if you're writing for a LiveCode client and use LiveCode on the server, LiveCode's encoded arrays are quite similar to BSON in many respects, and with the speedy convenience of arrayEncode and arrayDecode they're a joy to work with, avoiding the overhead of the more verbose and computationally-costly JSON.

With encoded arrays, it's almost like working with native BSON on both sides of a client-server system.

--
 Richard Gaskin
 Fourth World
 LiveCode training and consulting: http://www.fourthworld.com
 Webzine for LiveCode developers: http://www.LiveCodeJournal.com
 Follow me on Twitter:  http://twitter.com/FourthWorldSys

_______________________________________________
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