如何在(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
答案 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字符串。