Mark Wieder wrote:
Well, what you want to push to the server depends on the key:value
pairs they expect. Here's a simple example:

{"name" : "Tom McGrath", "favorite_author" : "Dr. Seuss"}

Here's an example from a mongodb student database:

{"_id": {"oid" : 1234},
  "student_id" : 0,
  "class_id" : 49,
  "scores" : [
    {"type" : "exam", "score" : 54.6}
    {"type" : "quiz", "score" : 65.6}
    {"type" : "homework", "score" : 78}
    {"type" : "homework", "score" : 80.4}
  ]
}

JSON is a good argument for what I like to call LSON, where the "L" stands for "LiveCode" of course. :)

Similar to MongoDB's BSON, LSON is a very convenient way to move hierarchically-ordered data back and forth between sever and client, compressing arrays and then Base64'ing them for efficient, robust network transport:

function ArrayToLSON pArray
    put arrayEncode(pArray) into tData
    put compress(tData) into tData
    return base64Encode(tData)
end ArrayToLSON

function LSONToArray pData
  try
    put base64Decode(pData) into tData
    put decompress(tData) into tData
    put arrayDecode(tData) into tArray
  catch tErr
    throw "Error unpacking LSON data"
  end try
  return tArray
end LSONToArray

My understanding is that LC's RevOnline uses that format, and I believe Andre is fond of it too.

Of course this only works if you have LC on both ends of the client-server setup, but who doesn't? :)

--
 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