当前位置:首页 > 代码 > 正文

cjson源代码(cjson源码解析)

admin 发布:2022-12-19 21:18 131


今天给各位分享cjson源代码的知识,其中也会对cjson源码解析进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

linux 下c程序哪一个json库比较好用

推荐使用 cJSON, 很精巧的json解析库,只有一个头文件和一个源文件, 代码精炼,只有500多行。库中附带使用案例

我的MAC编译LUA-CJSON模块时报如下错误,求大神解答~~!

把Makefile里的 CJSON_LDFLAGS = -shared改成CJSON_LDFLAGS = -bundle -undefined dynamic_lookup试试看

有没有谁在stm32上使用过cJSON库

源码编译一次就可以了。以后都可以不用编译的。你知道make这个工具不,只要没有被修改,文件就不会变编译。你用的是mdk还是iar?如果是mdk你只要按编译工具栏的中间那个键就是make;最右边的是编译所有文件这个就比较费时;最左边的是检查当前文件的语法。

我的等级不让插入图片如果有什么不明白的,给我留言。

mfc 通过websocket 发送接受cjson?

直接调用websocket的消息发送函数进行发送json格式的字符串就可以的。

json格式参考:

{

"employees": [

{

"firstName": "Bill",

"lastName": "Gates"

},

{

"firstName": "George",

"lastName": "Bush"

},

{

"firstName": "Thomas",

"lastName": "Carter"

}

]

}

我们项目目前使用的【GoEasy】提供的websocket推送服务,目前就支持发送json格式的字符串。

cocos2d-x集成anychat行不行

一、功能描述、SDK版本和帐号准备

功能大致是这样的:在游戏中设置一个按钮,点击这个按钮,弹出知名社交平台的分享图标集窗口,用户选择分享目标后,相关信息分享到对应的社交平台。分享结果通知通过Toast显示在屏幕的下方。

这次依旧使用ShareSDK for Android 2.3.7版本(ShareSDK-Android-2.3.7),Cocos2d-x的版本为3.0rc2。

集成前,你需要有一个基于Cocos2d-x 3.0rc2的可运行的Android平台游戏project,我们的集成就基于该project,这里我们的project名为GameDemo,GameDemo的源码结构大致是:

复制代码 代码如下:

GameDemo/

– Classes/

– proj.android/

– Resources/

– cocos2d/

– CMakeLists.txt

– … …

使用ShareSDK前,你需要在各大主流社交平台(微信、微博)申请开发者帐号以及游戏接入权限(app_key、app_secret)等,当然在ShareSDK站点也应该有自己的帐号和应用AppKey,这些申请的审核需要几个工作日,甚至更长。

二、ShareSDK集成步骤

按照ShareSDK官方manual说法,Cocos2d-x集成ShareSDK有三种方式,之前在Cocos2d-x 2.2.2引擎中采用的是专用组件集成的方式,该组件(C2DXShareSDKSample)可以在这里下载(,该组件近期已经fix了我之前发现的bug)。

1.jar包集成

这次我们主要做微博、微信的社交分享,因此只需要微博、微信相关jar包。在C2DXShareSDKSample/proj.android/libs下,我们找到以下几个jar包:

复制代码 代码如下:

-rw-rw-r– 1 tonybai tonybai 97K 4月 8 18:10 mframework.jar

-rw-rw-r– 1 tonybai tonybai 112K 4月 8 17:39 ShareSDK-Core-2.3.7.jar

-rw-rw-r– 1 tonybai tonybai 19K 4月 8 17:39 ShareSDK-SinaWeibo-2.3.7.jar

-rw-rw-r– 1 tonybai tonybai 4.3K 4月 8 17:39 ShareSDK-Wechat-2.3.7.jar

-rw-rw-r– 1 tonybai tonybai 29K 4月 8 17:39 ShareSDK-Wechat-Core-2.3.7.jar

-rw-rw-r– 1 tonybai tonybai 4.6K 4月 8 17:39 ShareSDK-Wechat-Favorite-2.3.7.jar

-rw-rw-r– 1 tonybai tonybai 4.4K 4月 8 17:39 ShareSDK-Wechat-Moments-2.3.7.jar

把这些jar包文件Copy到GameDemo/proj.android/libs下。

2. 配置文件与资源部分集成

修改GameDemo/proj.android/AndroidManifest.xml文件,在application标签下,添加如下Activity标签:

复制代码 代码如下:

activity

android:name="cn.sharesdk.framework.ShareSDKUIShell"

android:configChanges="keyboardHidden|orientation|screenSize"

android:screenOrientation="portrait"

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:windowSoftInputMode="stateHidden|adjustResize"

/activity

activity

android:name=".wxapi.WXEntryActivity"

android:configChanges="keyboardHidden|orientation|screenSize"

android:exported="true"

android:screenOrientation="portrait"

android:theme="@android:style/Theme.Translucent.NoTitleBar" /

将C2DXShareSDKSample/proj.android/res下的如下目录中的文件复制到GameDemo/proj.android/res下:

复制代码 代码如下:

drawable-hdpi/ drawable-ldpi/ drawable-mdpi/

drawable-xhdpi/ layout/ values/ values-en/

注意,类似icon.png这种文件就不要复制了,自己做一下判断就好。

3. C++部分代码集成

将C2DXShareSDKSample/Classes下的C2DXShareSDK文件夹Copy到GameDemo/Classes下面。

由于Cocos2d-x 3.0rc2的类命名发生了变化,我们需要对C2DXShareSDK中使用到的引擎中的类名以及方法名进行修改。但实际上Cocos2d-x 3.0rc2考虑到了一些兼容性的问题,大部分名字通过cocos2d/cocos/deprecated/CCDeprecated.h中定义的typedef得以保留,虽然这些名字已经被建议deprecated了。rc2中CCObject被改名为Ref了,这个我们需要手工在C2DXShareSDK进行修改。

另外ShareSDK组件在实现时大量使用了CCDictionary、CCArray和CCString,而这三个类在Cocos2d-x 3.0rc2中均被deprecated了,但我们依然可以使用,所以我们可以不做修改。但以后随着cocos2d-x版本的演进,这些类很可能被彻底移除出引擎,我们就需要重新使用其替代品进行实现了。

此外我们还需要手工修改一下C2DXShareSDK/Android/JSON/CCJSONConverter.cpp文件中的getObjJson方 法,因为rc2中CCDictionary、CCString、CCArray这些类的真实名称都已经换成了__Dictionary、__String 和__Array,CCDictionary、CCString、CCArray只是些typedef,因此要像下面这样做些修改(如果你是集成 cocos2d-x 2.x.x版本,则无需做下面修改):

复制代码 代码如下:

cJSON * CCJSONConverter::getObjJson(Ref * obj)

{

std::string s = typeid(*obj).name();

if(s.find("__Dictionary")!=std::string::npos){

cJSON * json = cJSON_CreateObject();

convertDictionaryToJson((CCDictionary *)obj, json);

return json;

}else if(s.find("__Array")!=std::string::npos){

cJSON * json = cJSON_CreateArray();

convertArrayToJson((CCArray *)obj, json);

return json;

}else if(s.find("__String")!=std::string::npos){

CCString * s = (CCString *)obj;

cJSON * json = cJSON_CreateString(s-getCString());

return json;

}else if(s.find("CCNumber")!=std::string::npos){

CCNumber * n = (CCNumber *)obj;

cJSON * json = cJSON_CreateNumber(n-getDoubleValue());

return json;

}else if(s.find("CCNull")!=std::string::npos){

cJSON * json = cJSON_CreateNull();

return json;

}

CCLog("CCJSONConverter encountered an unrecognized type");

return NULL;

}

CCNumber和CCNull是ShareSDK组件自己实现的类名,这里无需修改。

接下来我们需要在AppDelegate.cpp中对ShareSDK做初始化了:

复制代码 代码如下:

bool AppDelegate::applicationDidFinishLaunching() {

… …

initShareSDK();

… ..

}

void AppDelegate::initShareSDK()

{

// sina weibo

CCDictionary *sinaConfigDict = CCDictionary::create();

sinaConfigDict-setObject(CCString::create("YOUR_WEIBO_APPKEY"), "app_key");

sinaConfigDict-setObject(CCString::create("YOUR_WEBIO_APPSECRET"), "app_secret");

sinaConfigDict-setObject(CCString::create(""), "redirect_uri");

C2DXShareSDK::setPlatformConfig(C2DXPlatTypeSinaWeibo, sinaConfigDict);

// wechat

CCDictionary *wcConfigDict = CCDictionary::create();

wcConfigDict-setObject(CCString::create("YOUR_WECHAT_APPID"), "app_id");

C2DXShareSDK::setPlatformConfig(C2DXPlatTypeWeixiSession, wcConfigDict);

C2DXShareSDK::setPlatformConfig(C2DXPlatTypeWeixiTimeline, wcConfigDict);

C2DXShareSDK::setPlatformConfig(C2DXPlatTypeWeixiFav, wcConfigDict);

C2DXShareSDK::open(CCString::create("YOUR_SHARESDK_APPKEY"), false);

}

在Share按钮的事件回调函数中调用ShareSDK的接口进行社交平台分享:

复制代码 代码如下:

void GameScene::menuShareCallback(Ref* sender)

{

Dictionary *content = Dictionary::create();

content-setObject(String::create("ShareSDK for Cocos2d-x 3.0rc2社交分享测试。")

cjson源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于cjson源码解析、cjson源代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/24592.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载