I'm not convinced.  JSON objects have attributes and can contain child elements.  Ordering can be provided by arrays.<p>Namespaces are also easy to create within objects; an example would be the "type" attribute from the Freebase API.<p>For versioning, many APIs are accessed through a different subdomain or URL (e.g. <a href="http://api.example.com/v2/" rel="nofollow">http://api.example.com/v2/</a>).  If you're feeling somewhat enterprisey, you can also wrap your response in an "envelope" object containing all the necessary details to implement your own custom protocol.