必须要要先把json讲了,不然LFStrings不能工作啊,不过如果你们不使用json的方式,那么无所谓,你们已经知道原理了,就不必再等待别人讲解,完全可以自己写代码了。
下面抄一份网上介绍:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构:
- “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
- 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
json简单来说就是记录数据的结构,好多web应用都是用json作为数据传输的方式,javascript使用json更是方便。
简单针对strings.txt做一个json的介绍吧,如果还想更多的了解他,自己百度google吧。
比如我们想存一个键值对“nihao”—>”你好”怎么存?
直接
{
"key" : "nihao",
"value" : "你好"
}
就可以了,这里的”key”,”value”都是自己定义的,json不管这些,他只管根据字段的属性名,取出他的值就可以了。
所以我们写成:
{
"kkkk" : "nihao",
"vvvv" : "你好"
}
也是没问题的,注意一点是属性名需要用双引号括起来(语法问题,不想多讲,百度,google了解下就是了)。
我们的strings里面有很多键值对,那是怎么存呢,那么就是json的数组了,数组用[]括起来就是了:
比如:
{
"strings":[
{
"key":"biaoti",
"value":"标题"
},
{
"key":"huihe",
"value":"回合"
}
]
}
这里就是有2个键值对了,是用[]括起来的。
好了闲话已经太多了,不能再讲json了。
下面直接来在cocos2dx中怎么使用json解析。
首先我们需要下载一个json解析的库,google一搜,你便知道可以用什么解析了:
我选择的就是jsoncpp来解析,文章后面会附带这个库的压缩包,各位就不用再去找了。
解压下来,如如下目录结构:
json放到自己的目录里面,不要污染我我们自己的项目的代码。这样LFStrings就可以工作了。
LFStrings解析的时候涉及到文本的读入,相信你们应该也会了,直接把LFFileUtiles涉及到的文件操作自己实现就可以了(我后面会尽量附件里面带上LFFileUtiles)。LFStrings中最主要的函数就是parseFile,涉及文档的解析。如果大家看起来吃力,空了再讲讲他就是了。
所以现在的话,你就可以跑起来代码了。