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 => ...
随机推荐
- 【python】*与**
1. 加了星号(*)的变量名会存放所有未命名的变量参数,不能存放dict,否则报错. 如: 1 def multiple(arg, *args): 2 print "arg: ", ...
- c语言fork 多进程
fork函数的作用 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两 ...
- Spring boot 配置 mybatis xml和动态SQL 分页配置
更新时间 2018年4月30日23:27:07 1.pom.xml <?xml version="1.0" encoding="UTF-8"?> & ...
- 黄聪:AngularJS最理想开发工具WebStorm
Aug 29, 2013 Tags: angularangular.jsangularjswebstorm Comments: 23 Comments AngularJS最理想开发工具WebStorm ...
- 【剑指offer】求树中满足和为给定数字的路径
题目: 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大的 ...
- centos7下安全访问远程服务器
1. 添加普通账号 众所周知,linux下的root拥有最高权限,可以执行任何命令.在使用root身份操作时,有时的一个不注意就可能将非常重要的删除(最可怕的是 rm -rf /).而linux不像w ...
- 《Celeste》 开发者是如何精心制作“冲刺”的
转自:http://www.gameres.com/804804.html 简介与序曲 在Celesete里,许多细微的行动都是发生在转瞬之间的,甚至往往比你想象中还要“转瞬之间”. 这里是 [游戏机 ...
- Spring Boot探究之旅--启动分析
刚接触SpringBoot,感觉挺方便的,不用配置那么多乱七八糟的配置,很方便!酒饱思淫欲,得陇望蜀一下,看看SpringBoot到底怎么做到这么方便的. 首先呢,先来看个SpringBoot的hel ...
- js中的数值转换
js中有3个函数可以把非数值转换为数值:Number().parseInt().parseFloat().其中Number()可以用于任何数据类型.parseInt()及parseFloat()用于将 ...
- 学习:D3
http://www.ourd3js.com/wordpress/?p=196 http://www.ourd3js.com/demo/rm/R-9.2/force.html 力导向图(那个可以拖拽的 ...