使用CEF的JSON解析功能
Cef提供了JSON解析功能,在cef_parser.h文件内有三个JSON相关的方法:
- CefParseJSON
- CefParseJSONAndReturnError
- CefWriteJSON
以最简单的CefParseJSON方法来搞个小演示样例演示下使用方法。函数原型例如以下:
CefRefPtr<CefValue> CefParseJSON(const CefString& json_string,
cef_json_parser_options_t options);
第一个參数是带解析的json串,类型是CefString。实际使用时传递char*或std::string都能够。CefString能够自己主动依据它们构造。
第二个是枚举型的选项(定义在cef_types.h内)。有JSON_PARSER_RFC和JSON_PARSER_ALLOW_TRAILING_COMMAS两个值。后面这个枚举值的意思是同意JSON串最后有一个逗号(以逗号结尾的JSON字符串可能会被标准解析器觉得不合规)。
返回值是CefValue。CefValue是一个通用类型,定义在cef_values.h中,能够代表布尔、整型、双精度浮点数、字符串、二进制、字典、列表这几种类型(在cef_types.h中定义了枚举类型cef_value_type_t)。
CefValue的GetType()方法能够返回实际的数据类型。然后还有GetBool、GetString、GetInt、GetDictionary等用来返回特定类型的数据。
好了,有这些背景。就能够来解析JSON串了。
演示样例JSON串(一个简单的Dictionary)例如以下:
{
"result":0,
"token":"abc-k-xxx-poi",
"id":821251852
}
解析代码片段例如以下:
...
CefRefPtr<CefValue> jsonObject = CefParseJSON(strJoinKey, JSON_PARSER_ALLOW_TRAILING_COMMAS);
if (jsonObject->IsValid())
{
CefRefPtr<CefDictionaryValue> dict = jsonObject->GetDictionary();
CefString token = dict->GetString("token");
int id = dict->GetInt("id");
int result = dict->GetInt("result");
}
就这样吧。
其它參考文章详见我的专栏:【CEF与PPAPI开发】。
使用CEF的JSON解析功能的更多相关文章
- CEF生成JSON数据
在"使用CEF的JSON解析功能"中介绍了使用CefParseJson方法,与之相应的另一个CefWriteJson方法,能够用来生成JSON串(或二进制),其函数原型例如以下: ...
- CEF 支持JSON操作
转载:https://blog.csdn.net/foruok/article/details/50687864(解析json) 转载:https://blog.csdn.net/foruok/art ...
- 一起写一个JSON解析器
[本篇博文会介绍JSON解析的原理与实现,并一步一步写出来一个简单但实用的JSON解析器,项目地址:SimpleJSON.希望通过这篇博文,能让我们以后与JSON打交道时更加得心应手.由于个人水平有限 ...
- Json解析工具的选择
前言 前段时间@寒江不钓同学针对国内Top500和Google Play Top200 Android应用做了全面的分析(具体分析报告见文末的参考资料),其中有涉及到对主流应用使用json框架Gson ...
- Json解析工具Jackson(简单应用)
原文http://blog.csdn.net/nomousewch/article/details/8955796 概述 Jackson库(http://jackson.codehaus.org),是 ...
- 网络请求之JSON解析
<一>JSON的基本知识 什么是JSON:JSON的全称是JavaScript Object Notation(JavaScript对象符号),是目前使用最广泛的数据交换格式,具有跨平台. ...
- UI学习笔记---第十六天XML JSON解析
一.解析的基本概念 从事先规定好的格式中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据,数据方按照格式获取数据 常见解析方式XML解析JSON解析 二.XML:可扩展标记语言 XML ...
- Android基础总结(12)——XML和JSON解析
XML和JSON解析 在网络上传输数据时最常用的格式有两种:XML和JSON.本文主要就是学习如何对这两种常用的数据格式进行解析. 1.XML和JSON的定义 XML:扩展标记语言 (Extensib ...
- 这个东西,写C++插件的可以用到。 RapidJSON —— C++ 快速 JSON 解析器和生成器
点这里 原文: RapidJSON —— C++ 快速 JSON 解析器和生成器 时间 2015-04-05 07:33:33 开源中国新闻原文 http://www.oschina.net/p/ ...
随机推荐
- mac nexus搭建本地maven服务器
1.在保证安装jdk 1.7+,去nexus官网下载nexus(http://www.sonatype.com/download-oss-sonatype) 最新版本 2.解压zip文件,配置nexu ...
- 【G彩娱乐网】作为一名程序员,我应该如何选购一台电脑?
G彩娱乐网说到程序员专用电脑,那肯定是苹果电脑.优点有很多,比如白平衡特别准.酷炫的黑科技.特别方便的软件等显而易见的优势:也有能够增加提案通过率.专注工作提高工作效率这样的玄学buff. 但是!并不 ...
- jQuery_事件学习
一.click事件 click事件----鼠标单击事件 $('.bt').click(function() { alert("本身的事件");}) 当class为bt的div被但单 ...
- 使用NPOI导出导入导出Excel
Excel2003 #region Excel2003 /// <summary> /// 将Excel文件中的数据读出到DataTable中(xls) /// </summary& ...
- 从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库
开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...
- 最近ssh遇到异常及解决
1.SSH框架,spring和struts整合,action中注入service不成功,检测是否缺少 struts2-spring-plugin-2.3.4.1.jar包 2.字符串转 json 加了 ...
- 100000个嵌入式学习者遇到的PING不通问题,我们使用这一个视频就解决了,牛!
在10多年的售后答疑历程中,我们每天都会遇到开发板.windows,ubuntu三者之间的PING通问题,常常中断手头中的工作去解决这类问题,甚至跟客户远程协助,颇耗时间与精力,在热心网友.答疑助手们 ...
- Linux下安装ActiveMQ CPP
ActiveMQ CPP ActiveMQ CPP是用C++语言访问ActiveMQ的客户端开发库,也称cms(cpp message service),安装cms开发库需要先安装一些基础库. 如下: ...
- SpringMV---params and headers
配置文件承接一二章 params params:请求的参数 params=value 表示请求过来的参数必须等于value params!=value 表示请求过来的参数必须不等 ...
- C# 跨平台的支付类库ICanPay
随着微软的开源,越来越多的项目支持跨平台,但是各种支付平台提供的类库,又老又不支持跨平台,吐槽下,尤其是微信,还有好多坑,于是ICanPay诞生了,今天就来讲ICanPay是什么,怎么使用? ICan ...