基于VS2013MFC的JSON文件的写入和解析
来源:互联网 发布:外国人抢购的国货知乎 编辑:程序博客网 时间:2024/05/18 16:57
1. JSON文件的写入
类似于一般文本文件的写入。
CFile cf;if (cf.Open(strFileWeather, CFile::modeCreate | CFile::modeWrite | CFile::shareDenyNone) == FALSE) //strFileWeather是JSON文件名{ return ;}char cReadBuffer[4096] = {0};cf.Write(cReadBuffer, 4089);cf.Close();
2. JSON文件的解析
添加头文件
#include <Winnls.h>#pragma comment(lib,"Kernel32.lib")#include<fstream>
添加”lib_json.lib”
添加 链接器->输入->附加依赖项 lib_json.lib
添加代码
CFile cf; if (cf.Open(strJSONFile, CFile::modeRead | CFile::shareDenyNone) == FALSE) { return; } DWORD length = (DWORD)cf.GetLength(); if (length < 1) { cf.Close(); return; } char* pdata = new char[length]; if (pdata == NULL) { cf.Close(); return; } if (cf.Read(pdata, length) != length) { delete[]pdata; cf.Close(); return; } cf.Close(); std::string ss = pdata; //获取数据给字符串 delete[]pdata; Json::Reader reader; Json::Value root; if (!reader.parse(ss, root, false)) { return; //解析错误 } CString str; Json::Value item, item2, item3; #define def_weather_readjson_get_str2(a, b, c) c=item2[a][b].asString().c_str(); item = root["Net_Header"]; //NetHeader为JSON文件首字符串,具有标识意义 int i, j, size3, size2, size = item.size(); if (size < 1) { return; } CString ct_str = ct.Format(_T("%Y-%m-%d")); i = 0; item2 = item[i]["daily_forecast"]; size2 = item2.size(); for (j = 0; j < size2; j++) //里面有七天的天气,找到今天的天气 { def_weather_readjson_get_str2(j, "date", str); if (str == ct_str) break; } if (j == size2) { return; } //天气 item3 = item2[j]["cond"]; //从今天中找到天气 size3 = item3.size(); if (size3 < 1) { return; } TCHAR weather[32]; int temp_d, temp_n; str = item3["code_d"].asString().c_str(); //今天天气code_d对应的字符串 str = item3["code_n"].asString().c_str(); //今天天气code_n对应的字符串
注:源代码以获取天气信息为例;
阅读全文
0 0
- 基于VS2013MFC的JSON文件的写入和解析
- json的写入和解析(读取)
- XML文件的写入和读取(解析)基于DOM4J工具
- Python中Json文件的读入和写入以及simplejson
- Java之基于字节流文件的写入和读取
- VS2013MFC对话框工程学习笔记十 - 头文件的引用
- 在iOS中 XML文件的解析和写入
- Json文件的解析
- Python 读取写入 json 格式的文件
- XML文件的解析和json的解析
- python解析json字符串和json文件的区别
- python爬虫 如何解析json文件 json文件的解析提取和jsonpath的应用
- XML文件和JSON文件的解析及生成
- 文件的读取和写入
- ******************* 文件的写入和读取 *******************
- 文件的读取和写入
- 文件的读取和写入
- 文件的读取和写入
- 数据结构计算器实现ABS()和SQRT()
- Vimium——Chrome里伟哥级插件
- history.pushState无刷新改变url
- Java多线程和并发性知识点总结
- 邮箱验证码功能实现
- 基于VS2013MFC的JSON文件的写入和解析
- 关于 Overtrue 的拼音库 overtrue/pinyin 为何 travis 为 error【社交系统研发日记十】
- DTS结构及其编译方法
- jmeter个人学习之路--时间函数
- Linux下librtmp使用及编程实战
- 基于卷积神经网络的图像语义分割
- vc6.0/vs2010/vs2012/vs2013等的bug——sprintf,sprintf_s
- 分布式事务
- chrome及Firefox各版本浏览器下载地址