Java Serialization vs JSON vs XML

时光毁灭记忆、已成空白 提交于 2019-12-02 17:32:31
Ariel T

In general the important question is which client will receive the serialized objects - browsers/JavaScript engines like (node-js), Java client, unknown/multiple clients.

JSON - JSON syntax is basically JavaScript and therefore any component with a JS engine will handle its parsing very well - even complicated data-structures will be converted to "living" objects efficiently. JSON parsers exist for practically any language and it is easy to use even when not using a JS engine, (Take Google Gson for example that is able to convert JSON into corresponding objects with ease) which makes is a good candidate for cross-language communication - for example in a messaging architecture.

XML - Shares many of JSON's benefits - cross-language, lightweight, etc. Adobe Flex for example handles XML very well, even better than JSON. It's definitely an appropriate substitute for JSON. I personally prefer JSON for its JS like syntax, but XML is also good.

Java Serialization - Should be considered only for Java-to-Java communication. An important note is that the class definitions should be on the sending and the receiving ends and often you wouldn't gain much by passing the entire object. I wouldn't rule out RMI as a communication protocol, it does simplify development. However the resulting application components will be hard coupled which will make it very difficult to replace.

One more notes - Serialization in general has its overhead. However when the communication is performed over a network the bottleneck is often the network rather than the serialization/deserialization itself.

I think it depends. If you're sending an http request or something then JSON or XML is obviously a good choice. If you are just sending a java object over a tcp socket for some distributed algorithm or something I think the java serialization is easier/better

While serialization over the network both xml and json would work. It depends on the consumer of this information.

  • If the consumer is a browser using Ajax to request some information and render something on the screen, generally jason is the best bet as its already in Javascript object format and there is no overhead of converting to Javascript compatible objects. In fact many Ajax libs (e.g. jQuery) have good support for json.

  • If you consumer is another application which may or may not be in java, then xml is the prefer serialization mechanism. Web services use xml very heavily.

  • If your consumer is another Java program then definitely java serialization is preferred option (e.g. RMI). So its not out yet :-).

But yes there is blurred line between XML and Json. What I mentioned here is the general practice. Here is a nice article putting all the aspect on xml vs jason.

I think as developer we need not take care of serialization of Response Objects. but if we consider JSON , it has decent advantanges to choose over XML.

  1. JSON Response doesnt not need encoded response unlike XML.
  2. handling and processing of JSON is faster compared to XML because its not parsed.
  3. XML response for AJAX is always encoded hence processing takes time.
  4. JSON best fits with Jquery for UI related coding and is faster.
  5. Processing huge data Eg: fetching indexing data to/from server, JSON handling is faster.
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!