如何转换 c++ JSON 的变体?
如何将 Variant 转换为 (windows) C++ 中的 Java 脚本对象表示法?
我有一个返回 Variant 的硬件,它可以包含数组(浮点)、字符串或布尔数据。所有变体内容都应该很容易转换为 JSON,但是是否有一个 JSON 库可以对变体进行开箱即用的转换?或者...是否有一个 JSON 库(C++ 语言)可以处理几乎所有内容并返回正确的 JSON。
目前我的 JSON 转换器(我从随机站点下载的源)不理解 toJson(&variant)。
我正在寻找的是(伪代码):
switch (variant.type):
type1:
return json.dump(variant.value)
default:
return json(stringify(variant.value))
这里的要点是以最小的努力获得经过测试且有效的解决方案。
编辑 我所说的变体是指 Windows 的变体:msdn.microsoft.com/en-us/library/ms221627(VS.80).aspx
br,
Juha
How can I convert Variant to Java script object notation in (windows) c++?
I have a piece of hardware that returns a Variant which can contain an array(float), string or boolean data. All of variant contents should be easily converted to JSON, but is there a JSON library that does this out-of-the-box for variant? Or... Is there a JSON library (in c++) that eats almost anything and returns proper JSON.
Currently my JSON converter (sources that I downloaded from a random site) don't understand toJson(&variant).
What I am looking for is (pseudocode):
switch (variant.type):
type1:
return json.dump(variant.value)
default:
return json(stringify(variant.value))
The main point here is to get a tested and working solution with minimal effort.
edit By variant I mean Windows' VARIANT: msdn.microsoft.com/en-us/library/ms221627(VS.80).aspx
br,
Juha
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为你需要手动编写这个转换。我不知道有什么可以将 VARIANT 转换为 json 或 jsoncpp 值类。因此,只需创建检查 VARIANT 的
VARTYPE vt;
元素的开关,并在此基础上将其转换为例如 jsoncpp 值。也许您不需要转换每种类型的 VARIANT 类型,因此从一些基本类型(VT_I4、VT_UI4、VT_BSTR、VT_BOOL)开始,然后根据需要编写缺失的类型。I think you need to write this conversion manually. I'm not awarer of anything that could translate VARIANT to json or jsoncpp Value class. So just create switch that check
VARTYPE vt;
element of VARIANT and base on that convert it to for example jsoncpp Value. Probably you don't need to convert every type of VARIANT types so start with some basic ones (VT_I4, VT_UI4, VT_BSTR, VT_BOOL) and later if needed write missing types.您检查过 JsonCpp 吗?我过去曾有过一些运气。
您可以使用其 FastWriter 类 直接从变体值输出 JSON 字符串。
Have you checked out JsonCpp? I've had some luck with it in the past.
You could use its FastWriter class to output a JSON string directly from a variant value.