本文整理汇总了C++中nlohmann::json::at方法的典型用法代码示例。如果您正苦于以下问题:C++ json::at方法的具体用法?C++ json::at怎么用?C++ json::at使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类nlohmann::json
的用法示例。
在下文中一共展示了json::at方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: fromJson
void Pet::fromJson(nlohmann::json& val)
{
if(val.find("id") != val.end())
{
setId(val.at("id"));
}
if(val.find("category") != val.end())
{
if(!val["category"].is_null())
{
Category newItem(Category());
newItem.fromJson(val["category"]);
setCategory( newItem );
}
}
setName(val.at("name"));
{
m_PhotoUrls.clear();
nlohmann::json jsonArray;
for( auto& item : val["photoUrls"] )
{
m_PhotoUrls.push_back(item);
}
}
{
m_Tags.clear();
nlohmann::json jsonArray;
if(val.find("tags") != val.end())
{
for( auto& item : val["tags"] )
{
if(item.is_null())
{
m_Tags.push_back( Tag(nullptr) );
}
else
{
Tag newItem(Tag());
newItem.fromJson(item);
m_Tags.push_back( newItem );
}
}
}
}
if(val.find("status") != val.end())
{
setStatus(val.at("status"));
}
}
示例2: set
void ExprFunction<T>::set(const nlohmann::json &j, const Tvarvec &vars) {
Tconstvec consts;
auto it = j.find("constants");
if (it != j.end())
for (auto i = it->begin(); i != it->end(); ++i)
consts.push_back({i.key(), i.value()});
set(j.at("function"), vars, consts);
}
示例3: logic_error
files_and_template_pages_parameters::files_and_template_pages_parameters(const nlohmann::json &config)
{
// Optional parameters
try {
const auto &default_behavior =
config.at("default_behavior").get<std::string>();
if (default_behavior == "files") {
this->default_behavior =
files_and_template_pages_parameters::behavior::files;
} else if (default_behavior == "template_pages") {
this->default_behavior =
files_and_template_pages_parameters::behavior::template_pages;
} else {
throw std::logic_error("Incorrect config");
}
} catch (const std::out_of_range &) {}
try {
this->change_behavior_regex =
config.at("change_behavior_regex").get<std::string>();
} catch (const std::out_of_range &) {}
}
示例4: fromJson
void User::fromJson(nlohmann::json& val)
{
if(val.find("id") != val.end())
{
setId(val.at("id"));
}
if(val.find("username") != val.end())
{
setUsername(val.at("username"));
}
if(val.find("firstName") != val.end())
{
setFirstName(val.at("firstName"));
}
if(val.find("lastName") != val.end())
{
setLastName(val.at("lastName"));
}
if(val.find("email") != val.end())
{
setEmail(val.at("email"));
}
if(val.find("password") != val.end())
{
setPassword(val.at("password"));
}
if(val.find("phone") != val.end())
{
setPhone(val.at("phone"));
}
if(val.find("userStatus") != val.end())
{
setUserStatus(val.at("userStatus"));
}
}
示例5: runtime_error
void CGC6500::HandleMessage( const nlohmann::json &commandIn )
{
try
{
if( commandIn[ "cmd" ].get<std::string>() == "chCmd" )
{
size_t channelNum = commandIn.at( "ch" ).get<size_t>();
// Pass message down to specified channel
m_pChannels.at( channelNum )->HandleMessage( commandIn );
}
else
{
throw std::runtime_error( "Unknown command" );
}
}
catch( const std::exception &e )
{
std::cerr << "Error handling message: " << e.what() << std::endl;
}
}