最近想写一个自定义的动画数据文件,按照原来的做法,先定义一个文本格式的数据文件,然后写一个转换器转换成二进制,然后游戏中读入并解析。不过我最近特别懒,虽然我已经设计了一个“万能的”文本格式和二进制转换工具,但是解析二进制文件的工作仍然繁琐,并且根据以往的经验,可能会经常的修改文件格式,于是我想直接使用文本格式吧,首先想到的是XML,不过最近实在太懒了,连XML都懒得去解析,嗯,还有google Protocol Buffers这东西,以前看过,不过似乎用的人不多啊,还有一个json,见人在游戏中用过,那么就试试他吧。。
找了几个c++的json解析器,最后选中了jsoncpp (http://jsoncpp.sourceforge.net )。首先jsoncpp是public domain的,那么就随便我怎么用了,太爽了,然后他使用的是标准c++,没有任何其他依赖(某些库还要依赖boost等东西),最后他很小巧,只有15个源文件,我直接把这些文件copy到工程里就编译了,省去了lib的配置编译连接设定等等(既然懒就懒到底了。。。),直接看文档,用法非常简单,我写了一个简单的json文件作为测试(其实是用jsoncpp的styled writer写的。。)
测试代码:
使用jsoncpp简直太轻松了,我一句解析代码都没有写,直接从文件得到了json对象,有了json对象你就可以向你的游戏数据对象写入值了,或者作为早期的测试,直接使用json对象也未尝不可