前不久了解到了JSON(JavaScript Object Notation,一种轻量级的数据交换格式, 易于人阅读和编写。同时也“易于机器解析”和生成。)是一种可以取代XML成为AJAX中数据交换载体的格式,与JavaScript有着先天性的完全兼容。
看看JSON官方网站http://json.org,已经有很多各种平台下的JSON生成/解析工具,好像大都是开源的,其中还有一个国人编写的“Simple Java toolkit for JSON (JSON.simple)”。
既然“易于解析”和生成,我也来在Java中试了一试。生成确实不算难,几个循环就可以搞定。原本以为解析也是很简单的,结果看来,对于现在的我还是不一般的麻烦。
要考虑的问题实在太多:
期待的字符可能有很多种情况,各种情况需要分别处理。
临时数据的处理,一个对象的构建必须要等到其所有的属性构建完成,可以使用递归?或者自己使用栈保存?
字符的转义处理,空白字符的处理……
感觉对于我这个非计算计专业出身的人来说,功力还是大有欠缺啊。我非常遗憾到现在还没有学过编译原理,我想它对我解决上面的问题也许会有很大的帮助的。
解析个JSON都这么麻烦,看来写个JS解释器真是近乎不可能的任务了:-)
参考:
JSON http://json.org
Rhino(Java下的JavaScript解析器,已嵌入JavaSE6.0) http://developer.mozilla.org/en/docs/Rhino