CEF 支持JSON操作
转载:https://blog.csdn.net/foruok/article/details/50687864(解析json)
转载:https://blog.csdn.net/foruok/article/details/51132462(构建json)
在CEF项目开发中避免不了要使用json格式的数据,为了解决对json的使用,一般都是引入第三方开源库JsonCpp、cJson等,问题是解决了;但这样会增加客户端的体积,查阅资料发现CEF的确强大,它支持对json的操作,如果不想引入第三方库,可以使用CEF操作JSON。
Cef提供了JSON解析功能,在cef_parser.h文件内有三个JSON相关的方法:
- CefParseJSON
- CefParseJSONAndReturnError
- CefWriteJSON
1.CEF解析JSON
void CMainFrameWnd::TestParseJson()
{
std::wstring wstrJson = _T("{");
wstrJson += _T("\"uid\" : \"chechenluoyang@163.com\",");
wstrJson += _T("\"fileName\" : \"梅西.txt\",");
wstrJson += _T("\"time\" : \"2017.07.29 10:55:22\",");
wstrJson += _T("\"type\" : \"Libcurl HTTP POST JSON \",");
wstrJson += _T("\"authList\" : \"test\"");
wstrJson += _T("}"); CefRefPtr<CefValue> jsonObject = CefParseJSON(wstrJson, JSON_PARSER_ALLOW_TRAILING_COMMAS); if (jsonObject->IsValid())
{
CefRefPtr<CefDictionaryValue> dict = jsonObject->GetDictionary();
CefString strUid = dict->GetString("uid");//得到chechenluoyang@163.com
CefString strFilename = dict->GetString("fileName");//得到梅西.txt
}
}
注:因为我的工程属性设置的是Unicode编码,所以在用字符串拼接的时候用wstring来存储,不然中文会乱码。
2.构建JSON
void CMainFrameWnd::TestWriteJson()
{
CefRefPtr<CefDictionaryValue> pDict = CefDictionaryValue::Create(); pDict->SetInt("id", );
pDict->SetString("name", _T("梅西")); CefRefPtr<CefValue> pValue = CefValue::Create(); pValue->SetDictionary(pDict);
std::wstring strJson = CefWriteJSON(pValue, JSON_WRITER_DEFAULT);
}
生成的JSON串:
{
"id":9527,
"name":"梅西"
}
注:因为Unicode编码,json的key value都是CefString,要用宽字符设置,最后返回的json字符串也是CefString,也要用wstring保存,不然中文会乱码。
CEF 支持JSON操作的更多相关文章
- Json操作(DynamicJson)
Json的简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了 ...
- 【ASP.NET Web API教程】2.1 创建支持CRUD操作的Web API
原文 [ASP.NET Web API教程]2.1 创建支持CRUD操作的Web API 2.1 Creating a Web API that Supports CRUD Operations2.1 ...
- 【转】python 历险记(四)— python 中常用的 json 操作
[转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...
- python 历险记(四)— python 中常用的 json 操作
目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编码和解码? 常用的 json 操作有哪些? json 操作需要什么库? 如何 ...
- 【mysql】字段支持JSON类型
mysql从5.7开始已经支持JSON类型的字段. 支持的操作:添加,修改,置空,子key添加,子key重置,子key删除,通过子key查找等. 但是这里和普通字段的修改和查找不同,涉及到一些JSON ...
- kbmmw 中JSON 操作入门
现在各种系统中JSON 用的越来越多.delphi 也自身支持JSON 处理. 今天简要说一下kbmmw 内部如何使用和操作JSON. kbmmw 中json的操作是以TkbmMWJSONStream ...
- flask, SQLAlchemy, sqlite3 实现 RESTful API 的 todo list, 同时支持form操作
flask, SQLAlchemy, sqlite3 实现 RESTful API, 同时支持form操作. 前端与后台的交互都采用json数据格式,原生javascript实现的ajax.其技术要点 ...
- 分享基于.NET动态编译&Newtonsoft.Json封装实现JSON转换器(JsonConverter)原理及JSON操作技巧
看文章标题就知道,本文的主题就是关于JSON,JSON转换器(JsonConverter)具有将C#定义的类源代码直接转换成对应的JSON字符串,以及将JSON字符串转换成对应的C#定义的类源代码,而 ...
- flask修改flask_wtf使其支持json数据的validation验证
flask默认是前后端不分离策略,前端通过flask+wtf表单来传递post,put...等数据. 现在前后端分离是趋势,那么对flask进行一定的修改,变为前后端分离,在前端页面中请求后端,那么请 ...
随机推荐
- SQL之NULL值的几种处理方式
1.创建测试表: drop table if exists tab_null_operator; create table tab_null_operator as select 1 as id,'c ...
- django分页
page_count = 1 current_page = int(request.GET.get('p',1)) course1 = Course.objects.all().order_by('- ...
- ide phpStorm管理远程主机
- CatLog_小鱼要加油
python datetime 计算时间差 面向对象:类中的特殊成员 python中字符串的拼接 Django Django中一个项目使用多个数据库 Django中cookie和session使用 在 ...
- redis常用的命令总结
redis常用的命令大全 1.基于内存的key-value数据库 2.基于c语言编写的,可以支持多种语言的api //set每秒11万次,取get 81000次 3.支持数据持久化 4.value可以 ...
- ADB——修改手机默认参数
修改原理 修改设置的原理主要是通过 settings 命令修改 /data/data/com.android.providers.settings/databases/settings.db 里存放的 ...
- gitbook build/serve 失败,Error: ENOENT: no such file or directory, stat ...
我使用的 gitbook 版本 CLI version: 2.3.2 GitBook version: 3.2.3 在使用 gitbook 生成文档时,发现编译偶尔不规律性地出现错误 d:\Mine\ ...
- Extjs6 modern formpanel 上传文件 问题
要设置 enableSubmissionForm: false 否则chrome会报 Form submission canceled because the form is not connecte ...
- Python多线程下存在_strptime的问题
由于Python的datetime和time中的_strptime方法不支持多线程,运行时会报错:AttributeError: _strptime code: # -*- coding:utf-8 ...
- 安卓系统广播暴露设备信息-Android System Broadcasts Expose Device Information
Android device details are being exposed to running applications via Wi-Fi broadcasts in the mobile ...