如何将c ++ Variant转换为JSON?

时间:2011-04-08 15:09:43

标签: c++ windows json variant

如何在(windows)c ++中将Variant转换为Java脚本对象表示法?

我有一块硬件返回一个Variant,它可以包含一个数组(float),字符串或布尔数据。所有变体内容都应该很容易转换为JSON,但是有一个JSON库可以为变体开箱即用吗?或者......是否有一个JSON库(在c ++中)几乎可以吃任何东西并返回正确的JSON。

目前我的JSON转换器(我从随机网站下载的来源)不了解toJson(& variant)。

我正在寻找的是(伪代码):

switch (variant.type):
    type1:
        return json.dump(variant.value)
    default:
        return json(stringify(variant.value))

这里的要点是以最小的努力获得经过测试和运行的解决方案。

编辑根据变体我的意思是Windows'VARIANT:msdn.microsoft.com/en-us/library/ms221627(VS.80).aspx

BR,

的Juha

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

你签出了JsonCpp吗?我过去运气不错。

您可以使用其FastWriter class直接从变量值输出JSON字符串。