[基础总结]关于touch json

 这几天有点小闲,回想前几天,自己研究些基础东西,又是看书又是上网搜又是实验,每个小知识点都花了一两天,其实有人指点一下,几分钟应该就能解决,为了防止以后再遇到这些问题,又要重新研究,还是自己把它纪录下来,再用的时候看一下


        json是一种小型数据库,可以进行简单的读写,相对于slqlite更适合于内存紧张的手机,而且cocos2d本身是支持json的,虽然它不主动提供这种库。json适合写入比较固定的,不会改变的数据,比如游戏人物的出始属性。

        关于json的创建,首先要在mac上创建个文本编辑,然后把后缀改变json,再删掉里面的乱码,即可带入项目里面的resources去。

       关于要写入的方法,很简单,直接再json文件里面写就行了,写入的具体格式如下

        {

          ”a1“:

{”a2“:a3,

  “a4”:a5'

   }

],

"a6":

[

{.....

}

]    


   }       

         a1,a6指的是具体的对象,a2,a4指的是具体的属性,a3,a5指的是a2,a4具体的属性值。

      需要注意的是a1,a6,a2,a4,一定要打引号和冒号,a3,a5和中括号后面一定要打逗号,当a3是数字的时候不需要打引号,但当它为字符串的时候一定要打引号。这些小细节很重要,因为json本身不是xcode的编译文件,所以出错了不会提示,只会无法提出数据。

         关于在头文件中引用json的方法,首先要声明#import "CJSONDeserializer.h"

      然后写入函数 NSString *path  = [[NSBundle mainBundle]pathForResource:@"hero" ofType:@"json"];

        NSData *jsonData = [[NSFileManager defaultManager] contentsAtPath:path];

        CJSONDeserializer *jsonDeserializer = [CJSONDeserializer deserializer];

        NSError *error = nil;

        NSDictionary *jsonDict = [jsonDeserializer deserializeAsDictionary:jsonData error:&error];

        if (error) {

            //handle Error, didn't have here.

        };

        NSArray *dictArray = [jsonDict valueForKey:@"Seiger"];

        for (NSDictionary *dict in dictArray) {   

           

            

            

            /*  json调用属性*/

            NSString *Seigerbhp = [dict valueForKey:@"Bhp"];

       

        };

       hero是json的文件名,seiger是具体的对象,bhp是要引用的属性。

       因为是用指针引出的,所以还要再转换成函数指针,再转成数据,有点麻烦。

    大概的例子就是这样int Seigerbattack1=[Seigerbattack intValue]; 

  seiger Seigerhp=Seigerbhp1+(Seigerlevel1-1)*Seigerghp1;。

         json文件大概的用法就是如此。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值