CEF生成JSON数据
在“使用CEF的JSON解析功能”中介绍了使用CefParseJson方法,与之相应的另一个CefWriteJson方法,能够用来生成JSON串(或二进制),其函数原型例如以下:
// Generates a JSON string from the specified root |node| which should be a
// dictionary or list value. Returns an empty string on failure. This method
// requires exclusive access to |node| including any underlying data.
/*--cef()--*/
CefString CefWriteJSON(CefRefPtr<CefValue> node,
cef_json_writer_options_t options);
注意第一个參数是CefValue类型,在cef_values.h中定义,是CEF里的通用类型。
当我们要调用CefWriteJSON时必须传入此类型的数据,假如你的JSON数据通过CefListValue或CefDictionaryValue来表示,就须要将它们设置到一个CefValue实例中再传递给CefWriteJSON。
以下是使用CefWriteJSON的一个简单演示样例:
void testWriteJson()
{
CefRefPtr<CefDictionaryValue> pDict = CefDictionaryValue::Create();
pDict->SetInt("id", 123);
pDict->SetString("name", "ZhangSanFeng");
CefRefPtr<CefValue> pValue = CefValue::Create();
pValue->SetDictionary(pDict);
std::string jsonString = CefWriteJSON(pValue, JSON_WRITER_DEFAULT);
OutputDebugStringA(jsonString.c_str());
}
相应生成的JSON串例如以下:
{
"id":123,
"name":"ZhangSanFeng"
}
JSON数据可能是我们基于CEF开发富client程序时,在JS和C++之间通信最方便的格式了。以上面的数据为例,传递到JS上下文中,就能够用obj.id、obj.name之类的形式来訪问。
就这样吧。
其它參考文章详见我的专栏:【CEF与PPAPI开发】。
CEF生成JSON数据的更多相关文章
- 生成JSON数据--fastjson(阿里)方法
fastjson(阿里)方法生成JSON数据: 与Gson类似,创建相应类,再使用JSON.toJSONString()添加对象 要求:生成如下JSON数据 1.{"age":3, ...
- 生成JSON数据--Gson(谷歌)方法
Gson生成JSON数据方法: 创建相应的类,然后创建对象,toJson()进去就可以了 要求:生成如下JSON数据 1.{"age":4,"name":&qu ...
- python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)
昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...
- 无限级分类及生成json数据
第一步,先去数据库查询类别数据,然后交给生成json数据的函数处理,代码如下: /*生成类别JSON数据*/ public function wirteJson(){ $dataInfo = \thi ...
- servlet生成json数据返回至Ajax
一.JSON JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串字符串 只不过元素会使用特定的符号标 ...
- ASP生成JSON数据
原文地址为:ASP生成JSON数据 < %@LANGUAGE = " VBSCRIPT " CODEPAGE = " 65001 " % > ...
- C#生成JSON数据
protected void Page_Load(object sender, EventArgs e) { Response.Clear(); Response.ContentType = &quo ...
- c# 生成json数据包
json数据类型,归根到底就是一个字符串,管他里面什么格式,它就是一个字符串来的! 看一个json数据包: { "touser":"OPENID", " ...
- 生成 JSON 数据
//build an info object and convert to json NSDictionary* info = [NSDictionary dictionaryWithObjectsA ...
随机推荐
- python学习-- 在django中,执行原始sql语句
from django.shortcuts import render, redirect from news.models import Article, Column def test(reque ...
- tinyipa make
参考:http://tinycorelinux.net/ Ironic Python Agent repo还提供了一组脚本,用于在imagebuild / tinyipa文件夹下构建一个基于Linux ...
- 文件处理之复杂,在于内置方法-----python
抛砖引玉: 文件是我们储存信息的地方,我们经常要对文件进行读.写.删除等的操作,在Python中,我们可用Python提供的函数和方法方便地操作文件. ************************ ...
- 【转】iTween for Unity
http://www.cnblogs.com/zhaoqingqing/p/3833321.html?utm_source=tuicool&utm_medium=referral 你曾经在你的 ...
- 学习RMQ-ST表
RMQ一般是一个二维数组,用$dp[i][j]$表示起点为i开始连续数$2^j$个元素其中的最值,由于对于一个闭区间有:$R-L+1=len$因此也可以用另外一种记法:闭区间为$[i,i+2^j-1] ...
- python数据结构之字典
1.python字典的定义 1.用大括号{},以逗号分隔每个键值对,键与值之间用冒号连接 2.键:需要不可变的数据结构,值可以是任意的数据对象 3.字典是无序的,键在字典中必须是唯一,在字典中取值的方 ...
- [暑假集训--数论]poj2909 Goldbach's Conjecture
For any even number n greater than or equal to 4, there exists at least one pair of prime numbers p1 ...
- js 清空div
document.getElementById('BIGDraw').innerHTML = ""; $('#BIGDraw').html(""); $('#B ...
- pat 甲级 1038. Recover the Smallest Number (30)
1038. Recover the Smallest Number (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...
- pat 团体天梯赛 L3-007. 天梯地图
L3-007. 天梯地图 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题要求你实现一个天梯赛专属在线地图,队员输入自己学校 ...