cocos2dx 使用curl库与php服务端通信3
首页 > cocos2dx专栏 > cocos2dx网络    作者:闭眼就天黑   2016年9月30日 18:34 星期五   热度:4251°   百度已收录  
时间:2016-9-30 18:34   热度:4251° 

在第二步中我们学会了请求服务端,并且正确的打印了服务端返回的数据,下面我们开始学习怎么处理服务端下发的数据。本例服务端返回的是一个sting类型的json格式数据。接下来我们将学会如何解析json格式数据。

cocos2dx 使用curl库与php服务端通信

代码示例:链接: https://pan.baidu.com/s/1ge92ydH 密码: yj7j

cocos2dx 使用curl库与php服务端通信【1】http://www.byjth.com/network/94.html

cocos2dx 使用curl库与php服务端通信【2】http://www.byjth.com/network/95.html

cocos2dx 使用curl库与php服务端通信【3】http://www.byjth.com/network/96.html


首先我们先分析下我们的json数据。

 

我们从返回的json数据来看,我们一共有6条数据。每条数据有三个部分,每个部分都是一个键值对。

这里我们同样用cocos2dx给我们提供的rapidjson库来解析json格式的数据。

首先,在HelloWorldScene.h头文件添加json的引用头文件。

#include "json/rapidjson.h"

#include "json/document.h"

 

然后我们新建一个CurlReadJson类来实现内容的接收和转换。

这里我直接贴 代码。

//CurlReadJson.h

 

//CurlReadJson.cpp

 

这个类的功能很简单。主要功能还在调用的地方。

我们在HelloWorldScene.h里,添加一个数据解析的方法InitListByServerData用来拆分单个的json数据。m_map_server_list用来把拆分的json数据保存为客户端需要的数据。

一个oneUpdate方法来更新一次界面显示,把visibleSize,origin改成全局的声明。

 

这些做好了,首先我们来实现具体的功能代码。

1、处理服务端返回的字符串流,实现单个json数据的拆分。

 

 

rapidjson::Document documentRecive;用来转换接收的数据。因为服务端返回给我们的数据虽然是json看起来是json格式的,但是类型是string类型的。通过这些代码我们的数据就会被拆分成单个的json类型的数据了。然后我们在用InitListByServerData方法来实现单个json数据的解析。

 

 

 

这里CurlReadJson类处理单个的内容数据,然后加入到m_map_server_list里。

 

然后我们来测试下m_map_server_list里值对不对,在我们创建的oneUpdate方法里实现测试数据。

 

然后我们在menuCloseCallback方法里执行一次调度器。

this->scheduleOnce(schedule_selector(HelloWorld::oneUpdate), 1.0f);//回调更新

 

 

下面我们来测试下能不能正确的在游戏窗口显示我们的服务端数据。

 

 

json数据显示.gif

数据正常的显示了,大家看看怎么样。

二维码加载中...
本文作者:闭眼就天黑      文章标题: cocos2dx 使用curl库与php服务端通信3
本文地址:https://www.byjth.com/network/96.html
版权声明:若无注明,本文皆为“闭眼就天黑专栏_技术博客_个人学习总结”原创,转载请保留文章出处。
相关文章

版权所有:《闭眼就天黑专栏_技术博客_个人学习总结》 => 《cocos2dx 使用curl库与php服务端通信3
本文地址:https://www.byjth.com/network/96.html
除非注明,文章均为 《闭眼就天黑专栏_技术博客_个人学习总结》 原创,欢迎转载!转载请注明本文地址,谢谢。

谢谢分享!
@hzx:O(∩_∩)O
又学习长知识了。

返回顶部    首页    手机版本    版权所有:闭眼就天黑专栏_技术博客_个人学习总结
    站长: 闭眼就天黑    搜索cocos2dx主题 技术支持:闭眼就天黑   皖ICP备14007736号-1  

皖公网安备 34132102000107号

   sitemap