void JSONArrayToStringVector(const rapidjson::Value& Obj, std::vector<std::string>& Vector)
{
    Vector.clear();

    if (Obj.IsArray() && !Obj.Empty())
    {
        for (unsigned int i=0; i<Obj.Capacity(); i++)
        {
            if (Obj[i].IsString())
                Vector.push_back(std::string(Obj[i].GetString()));
        }
    }
}
void JSONArrayToStringSet(const rapidjson::Value& Obj, std::set<T>& Set)
{
    Set.clear();

    if (Obj.IsArray() && !Obj.Empty())
    {
        for (unsigned int i=0; i<Obj.Capacity(); i++)
        {
            if (Obj[i].IsString())
                Set.insert(T(Obj[i].GetString()));
        }
    }
}