json 文件解析与应用
第一步:首先弄一个 json 文件 我这里成为 config.json 内容如下
{
"":
{
"id":,
"desc":"中华人民共和国"
},
"":
{
"id":,
"desc":"中国人民银行"
}
}
第二步:添加解析 json 文件的函数 记得 首先声明一个全局的 map 容器 或者成员的 map 容器 map_ForText
int HelloWorld::parse_json()
{
unsigned long size = ;
unsigned char* pData = nullptr; pData = CCFileUtils::sharedFileUtils()->getFileData("config.json","rb",&size);
if( !pData )
return -; CSJson::Reader j_reader;
CSJson::Value root_value; if( !j_reader.parse((const char*)pData, (const char*)(pData+size), root_value) )
{
CCLOG("/n%s/n", j_reader.getFormattedErrorMessages().data());
CC_SAFE_DELETE_ARRAY(pData);
return -;
} for( CSJson::Value::iterator iter=root_value.begin(); iter!=root_value.end(); ++iter )
{
int id = ;
string str = ""; CSJson::Value &v = (*iter)["id"];
if( !v.empty() )
{
id = v.asInt();
} v = (*iter)["desc"];
if( !v.empty() )
{
str = v.asString();
}
map_ForText.insert(make_pair(id,str));
} return ;
}
第三步:添加获得字符串的函数
const char* HelloWorld::get_text(int id)
{
CCLOG("This is HelloWorld::get_text");
auto iter = map_ForText.find(id);
if( iter != map_ForText.end() )
{
return (iter->second).c_str();
}
return "";
}
第四步:使用cocoStudio编辑器 编辑一个界面 创建一个 文本框(UILabel) 到这个界面上 如下图
然后将其导出 ,这里我创建时命名为 NewProject 这样生成后 导出大图 将会导出文件 NewProject_1.ExportJson
第五步:把这个界面加载到 场景中并初始化 这个 UILabel 的内容 为 “中华人民共和国” (对应 .json 文件的 id 为1000)
parse_json(); //首先调用解析文件的函数 UILayer* widLayer = UILayer::create();
UIWidget* widget = CCUIHELPER->createWidgetFromJsonFile("NewProject_1.ExportJson");
UILabel* lab_text = static_cast<UILabel*>(widget->getChildByName("lab_text_info"));
const char* text = get_text();
lab_text->setText(text); widLayer->addWidget(widget);
this->addChild(widLayer);
这样之后,就会出现我们期待已久的效果,添加文件中的中文 输出到屏幕上 如下如所示:(当然在界面上我还添加了一些其他的元素 ,不过这不影响我们期待的效果)
“中华人民共和国” 即 对应 我们之前的 json 文件 id:1000 所对应的内容
初来乍到,请多赐教 …… 如有意见或建议,请留言 18310094097@163.com
json 文件解析与应用的更多相关文章
- Golang Json文件解析为结构体工具-json2go
代码地址如下:http://www.demodashi.com/demo/14946.html 概述 json2go是一个基于Golang开发的轻量json文件解析.转换命令行工具,目前支持转换输出到 ...
- PHP JSON文件解析并获取key、value,判断key是否存在
/****************************************************************************** * PHP JSON文件解析并获取key ...
- 【微信】微信小程序 微信开发工具中新创建的json文件,编译报错VM1781:2 pages/module/module.json 文件解析错误 SyntaxError: Unexpected end of JSON input
如果新创建报错:编译报错VM1781:2 pages/module/module.json 文件解析错误 SyntaxError: Unexpected end of JSON input 解决方法 ...
- Json文件解析(下)
Json文件解析(下) 代码地址:https://github.com/nlohmann/json 从STL容器转换 任何序列容器(std::array,std::vector,std::dequ ...
- Json文件解析(上)
Json文件解析(上) 代码地址:https://github.com/nlohmann/json 自述文件 alt=GitHub赞助商 data-canonical-src="https: ...
- NPOI+Json文件解析Excel
记点笔记,加深印象!最近有个导入Excel工能需要完成,Excel列名是中文的,导入Excel我用的NPOI插件,如果不对Excel做解析,列名有可能会给我带来一些字符方面的麻烦,于是想到了一个比较l ...
- Twaver的mono-desiner导出的json文件解析
以画的交换机为例,其他大概都差不多. 利用Twaver做出交换机模型如图1所示,其中,每一个端口都是一个单独的对象.具体Twaver操作流程参见网址:http://twaver.servasoft.c ...
- json文件解析
场景 读取json文件,读取子域名扫描结果 实现 >>> import json >>> with open("C:\\Users\\Windows32\ ...
- HBuilder开发移动App——manifest.json文件解析
以前做过Android App开发,对于各项配置都是在AndroidManifest.xml文件中完成的,包括权限的设定.图标.标签.App的名字.Activity注册等等 使用HBuilder开发移 ...
随机推荐
- douban_转自熊博网——牛逼顿
转自熊博网——牛逼顿 来自: 天云之叶(大道易得,小术难求) 2010-04-21 18:32:27 牛逼顿 作者:singularitys 3月28号是牛顿的忌日,但是知道的人很少,我们毕竟更关心沈 ...
- POJ 1518 A Round Peg in a Ground Hole【计算几何=_=你值得一虐】
链接: http://poj.org/problem?id=1584 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22013#probl ...
- 为什么要对url进行encode
发现现在几乎所有的网站都对url中的汉字和特殊的字符,进行了urlencode操作,也就是: http://hi.baidu.com/%BE%B2%D0%C4%C0%CF%C8%CB/creat/bl ...
- redis持久化AOF详细操作步骤
1.切换到redis目录下面,创建文件 s3-redis.conf 2.编辑文件s3-redis.conf 3.终止当前redis服务端 4.登录redis客户端失败,说明服务端已停止 5.重启red ...
- 我的Android进阶之旅------>Android无第三方Jar包的源代报错:The current class path entry belongs to container ...的解决方法
今天使用第三方Jar包afinal.jar时候,想看一下源代码,无法看 然后像添加jar对应的源码包,也无法添加相应的源代码,报错如下:The current class path entry bel ...
- 我的Android进阶之旅------>Android颜色值(RGB)所支持的四种常见形式
Android中颜色值是通过红(Red).绿(Green).蓝(Blue)三原色,以及一个透明度(Alpha)值来表示的,颜色值总是以井号(#)开头,接下来就是Alpha-Red-Green-Blue ...
- ubuntun下安装Fiddler
对于分析网页或者写爬虫的时候经常需要用到抓包工具进行网页数据的抓包.在Windows下可以安装Fiddler来抓包.在ubuntun下不能直接安装Fiddler.需要先安装mono 1 首先安装mon ...
- hibernate 多对多 懒加载问题
报错:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: net. ...
- 使用django开发一个博客
环境: MAC 10.10.5 Yosemite Python 3.73 Django 代码托管 github
- surf算法解析
surf构造的金字塔图像与sift有很大的不同,sift采用的是DOG图像,surf采用的是hessian矩阵行列式近似值图像,hessian矩阵是surf算法的核心,构建hessian矩阵的目的是为 ...