MFC里面解析json文件格式
CString strTemp; //CString ->string; string stringMsg = (LPCSTR)(CStringA)strTemp; //string -> CString strTemp= stringMsg.c_str();
原本是想接入jsonCPP,不过多线程调试一直不兼容,修改 MDd,MTd还是没有什么用;后来想了想,干脆自己写个;
思路:用字典解决;
void CDlg::SetMap(CMap<CString, LPCTSTR, CString, LPCTSTR> &mapContent,CString msgJson) {
CStringArray strArray;
CString strTemp = msgJson;
string stringMsg = (LPCSTR)(CStringA)strTemp;
strTemp.Remove('"');
strTemp.Remove('{');
strTemp.Remove('}');
int strTempLength = strTemp.GetLength();
int index = 0;
while(true){
index = strTemp.Find(',');
if (-1 == index) {
strArray.Add(strTemp);
break;
}
strArray.Add(strTemp.Left(index));
strTemp = strTemp.Right(strTemp.GetLength() - index - 1);
}
int length = strArray.GetSize();
CString strMap;
int subIndex = 0;
CString strKey("");
CString strValue("");
for (int i = 0; i < length; i++) {
strMap = strArray.GetAt(i);
subIndex = strMap.Find(':');
strKey = strMap.Left(subIndex);
strValue = strMap.Right(strMap.GetLength() - subIndex - 1);
mapContent.SetAt(strKey, strValue);
}
}
void CDlg::MsgJson(CString msgJson)
{
CMap<CString, LPCTSTR, CString, LPCTSTR> my_Map;
SetMap(my_Map, msgJson);
CString pLook;
my_Map.Lookup(L"type", pLook);
};
这样就可以解析简单的json.如果有多层,那么就首先通过寻找 {},进行数据分割,原理大同小异;
MFC里面解析json文件格式的更多相关文章
- UI进阶 解析XML 解析JSON
1.数据解析 解析的基本概念 所谓“解析”:从事先规定好的格式中提取数据 解析的前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照格式获取数据 iOS开发常见的解析:XML解析.JSO ...
- QT5 解析JSON文件
QT读JSON文件步骤,这里把过程记录一下,网上大多都是怎么写json的,对于读的,记录的不多 首先JSON文件格式必须为UTF-8(非UTF-8 with BOM),UTF-8 with BOM 即 ...
- Xamarin.Android下获取与解析JSON
一.新建项目 1.新建一个Android项目,并命名为为NetJsonList 2.右击引用,选择添加引用,引用System.Json.dll 二.同步请求 既然是跨平台,我们自然不能按照java下的 ...
- 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)
在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...
- 阶段一:通过网络请求,获得并解析JSON数据(天气应用)
“阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 在上一篇阶段一:解析JSON中提到,最近在写一个很简单的天气预报应用.即使功能很简单,但我还是想把它做成一个相对完 ...
- 阶段一:解析JSON
“阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 最近学到解析JSON格式的网络数据,而作业也要求自己找一个天气预报的API地址,然后解析其中JSON格式的数据.可 ...
- C语言创建及解析Json的使用法则
参考原文:http://blog.csdn.net/xukai871105/article/details/33013455 JSON(JavaScriptObject Notation)是一种轻量级 ...
- 不一样的dynamic解析json 万能方法
写过javascript的人都知道js解析json 1:(JSON) 字符串转换为对象. var str = '{"name":"lsw","hobb ...
- C# 解析JSON的几种办法
欲成为海洋大师,必知晓海中每一滴水的真名. 刚开始只是想找一个转换JSON数组的方法,结果在MSDN翻到一大把. 搜索过程中免不了碰到一大堆名词:WCF => DataContract => ...
随机推荐
- STS启动时卡在loading加载 dashboard.ui
如果你在用STS 3.4或3.5,启动时可能会卡在 解决方法:打开STS安装目录下的plugins目录,删除文件 org.springsource.ide.eclipse.dashboard.ui_3 ...
- “永恒之蓝”(Wannacry)蠕虫全球肆虐 安装补丁的方法
“永恒之蓝”利用0day漏洞 ,通过445端口(文件共享)在内网进行蠕虫式感染传播,没有安装安全软件或及时更新系统补丁的其他内网用户就极有可能被动感染,所以目前感染用户主要集中在企业.高校等内网环境下 ...
- 用kettle从mysql中使用存储过程读取数据写入到sqlserver数据库
1.mysql存储过程,可以实现动态表读取,满足较为复杂的业务逻辑 DROP PROCEDURE if exists p_get_car_trace; delimiter // CREATE PROC ...
- Java笔记Spring(三)
spring-beans和spring-context 一.注解 1.自定义一个注解 @Target({ElementType.METHOD}) @Retention(RetentionPolicy. ...
- vim常用操作和使用技巧
vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技巧 说明: 以下的例子中 ...
- SpringBoot入门篇--关于properties和yml两种配置文件的一些事情
我们在使用SpringBoot这个框架的时候都一定使用或者说是见到过application.properties或者是application.yml,经不住有人就会问这俩文件到底是什么情况,其实说白了 ...
- 1-hadoop、mr
1.HDFS的优缺点: 优点: ① 高容错 ② 可扩展 ③ 适合大文件存储 ④ 可构建在廉价的机器上 缺点: ① 高延迟 ② 文件不能修改 ③ 不适合小文件存储 2.HDFS架构(类似于文件系统): ...
- Dubbo源码阅读顺序
转载: https://blog.csdn.net/heroqiang/article/details/85340958 Dubbo源码解析之配置解析篇,主要内容是<dubbo:service/ ...
- (4)网络配置及CRT远程连接
修改linux虚拟机中某一网卡的网络配置: 打开终端,输入命令vi /etc/sysconfig/network-scripts/ifcfg-eth0 在文件中写入以下内容: (这里有个错误,DNS要 ...
- oracle instantclient + plsql 远程连接数据库
PLSQL Developer连接数据库: 1.不连接数据库登陆PLSQL Developer(登陆界面按“取消”即可).在Tools->Perferences->Connection ...