1. JSON 本身的解析器
性能: Jackson > Json-lib*10
可以考虑 jackson 且重用ObjectMapper 的方法获取最高性能;
说明如下:
因为见过有人在使用jackson时,每次都new 一个ObjectMapper的情况,而在官方教程中看到过这样一段话(can reuse, share globally)http://jackson.codehaus.org/Tutorial:
- ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
- User user = mapper.readValue(new File("user.json"), User.class);
ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
User user = mapper.readValue(new File("user.json"), User.class);
即ObjectMapper可以重用,所以这里同时进行重用和不重用方式的测试,另外还测试直接使用StringBuffer拼接字符串的方式,以比较json序列化与原始的java方法的性能差异
参考:
http://hjg1988.iteye.com/blog/561368
http://hjg1988.iteye.com/blog/561368
2. XML本身的解析器
性能比较: SAX >Pull>DOM
Your best bet is SAX or XMLPull. Android provides API for both. The main difference here is:
- In SAX, the parser drives the parsing and does callbacks on your code
- In pull parsing the user code drives the parsing.
- DOM will load whole xml in memory
参考:http://www.developer.com/ws/article.php/10927_3824221_2/Android-XML-Parser-Performance.htm
3. JSON&XML 比较
4. JSON&XML 解析器比较