Json seems to be your best option. Xml is complex and complex to parse. SBJson library works great when serializing an object graph. I already did such a process, but I never tried to send my array to the server, instead I compared the hash both with the server and locally, and downloaded the new version if necessary.
Good luck.
Edit
Using the SBJSON library, creating a json representation of an object is done like this:
[myObject JSONRepresentation]
SBJSON library is here here
:
Json . , , , proxyForJson , . , , .