首页 > 解决方案 > 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;
   }
}

标签: c++json

解决方案


推荐阅读