c++ - c ++处理来自json对象的不同类型
问题描述
我有一个接收 json 对象的传输侦听器。为此目的,不同的订阅者将对 json msg 的不同属性感兴趣。问题在于能够动态处理属性的类型。
我正在考虑使用类似于此的数据结构来提供帮助:
std::unordered_map<std::string,std::vector<std::function<void (T)>>>;
std::unordered_map<std::string,std::vector<T&>>>;
//这不起作用,因为我将被迫在类模板级别上拥有模板 T,绑定到我不想要的相同类型。
我正在考虑union
封装所有可能的类型,但这听起来并不完全可行
如何使用伪代码:
void OnJsonObjectReceived(JsonObject msg)
{
auto key = "test_prop";
val = get_value_from_json_msg(key, msg) ;
for(subscriber in _unordered_map.find(key)->subscribers)
{
subscriber = val;
}
}
解决方案
推荐阅读
- r - 使用 R 的事件研究设计中具有交互项的公式
- python - 无法添加标头/Access-Control-Allow-Crendentials - python 函数应用程序
- python-3.x - 不同时间的不同 R 平方分数
- xml - 使用 F# 从 XDocument 中提取所有命名空间属性
- reactjs - 为什么样式化组件会生成对象?
- java - 如何在 rest API 响应中返回多个 InputStream 对象?
- wordpress - 如何使用 URL 参数更改产品的默认变体?
- react-native - 需要澄清 LayoutAnimation
- html - 待办事项应用程序中的“TypeError:无法读取 null 的属性‘值’”
- r - R Shiny Module 不会更新不同选项卡上的输入值