加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2dlibjson数据解析

发布时间:2020-12-14 20:22:07 所属栏目:百科 来源:网络整理
导读:使用libJson解析思路: 1. 获取请求数据 std :: vector *buffer = response-getResponseData(); //返回回来的数据 std :: string json = "" ; //创建字符串用于存储返回的数据 for ( unsigned int i = 0 ; i buffer-size(); i++) { json += (*buffer)[i]; }
使用libJson解析思路:1.获取请求数据 
 std::vector *buffer = response->getResponseData(); //返回回来的数据 
 std::string json = "";//创建字符串用于存储返回的数据
 for (unsigned int i = 0; i < buffer->size(); i++)  
 {  
  json += (*buffer)[i];
 }  
 JSONNODE *node = json_parse(json.c_str());//调用方法,获得一个node,要传参解析的就是node
 ParseJSON(node);
 json_delete(node);
2.进入解析方法
json解析步骤(基本解析):
void ParseJSON(JSONNode * node){
        JSONNode::const_iterator i = json_begin(node);//通过迭代器可以一层一层获取node的名称,并通过该名称获取对应的value值。如果对应的仍然是node或者array的话,就递归调用,层层解析
      while (i != json_end(node)){
                if (json_type(*i) == JSON_ARRAY || i -> type() == JSON_NODE){
                        ParseJSON(*i); //递归调用该解析方法
                }
                // get the node name and value as a string
                json_char *node_name = json_name(*i);
                // find out where to store the values
                if (node_name == "RootA"){
                        json_char *node_value = json_as_string(*i);//获取到RootA对应的字 符串value值
                }
                else if (node_name == "ChildA"){
                        json_char *node_value = json_as_string(*i);
                }
                else if (node_name == "ChildB")
                        json_char *node_value = json_as_string(*i);
                //increment the iterator
             json_free(node_name);//使用完了要记得释放
                ++i;//进入下一层
        }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读