3

如何在(Windows)C++ 中将 Variant 转换为 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

兄弟,

朱哈

4

2 回答 2

1

我认为您需要手动编写此转换。我不知道任何可以将 VARIANT 转换为 json 或 jsoncpp 值类的东西。因此,只需创建检查VARTYPE vt;VARIANT 元素的开关,并在此基础上将其转换为例如 jsoncpp 值。可能您不需要转换每种类型的 VARIANT 类型,因此从一些基本类型(VT_I4、VT_UI4、VT_BSTR、VT_BOOL)开始,如果需要,稍后再写入缺失类型。

于 2011-04-09T17:32:29.450 回答
0

你检查过 JsonCpp吗?过去我有过一些运气。

您可以使用它的FastWriter 类直接从变量值输出 JSON 字符串。

于 2011-04-08T15:27:49.047 回答