本文整理汇总了C++中rapidjson::Value::MemberBegin方法的典型用法代码示例。如果您正苦于以下问题:C++ Value::MemberBegin方法的具体用法?C++ Value::MemberBegin怎么用?C++ Value::MemberBegin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rapidjson::Value
的用法示例。
在下文中一共展示了Value::MemberBegin方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: JSONObjectToDetailedWares
void JSONObjectToDetailedWares(const rapidjson::Value& Obj,
FluidHubAPIClient::WaresDetailsByID_t& WMap)
{
WMap.clear();
if (Obj.IsObject())
{
for (rapidjson::Value::ConstMemberIterator it = Obj.MemberBegin(); it != Obj.MemberEnd(); ++it)
{
if (it->value.IsObject())
{
std::string WareID = it->name.GetString();
WMap[WareID] = FluidHubAPIClient::WareDetailedDescription();
rapidjson::Value::ConstMemberIterator itMember = it->value.FindMember("shortdesc");
if (itMember != it->value.MemberEnd() && itMember->value.IsString())
{
WMap[WareID].ShortDescription = std::string(itMember->value.GetString());
}
itMember = it->value.FindMember("git-url");
if (itMember != it->value.MemberEnd() && itMember->value.IsString())
{
WMap[WareID].GitUrl = std::string(itMember->value.GetString());
}
itMember = it->value.FindMember("git-branches");
if (itMember != it->value.MemberEnd() && itMember->value.IsArray())
{
JSONArrayToStringVector(itMember->value,WMap[WareID].GitBranches);
}
itMember = it->value.FindMember("issues-counts");
if (itMember != it->value.MemberEnd() && itMember->value.IsObject())
{
for (rapidjson::Value::ConstMemberIterator itCounters = itMember->value.MemberBegin();
itCounters != itMember->value.MemberEnd();
++itCounters)
{
if (itCounters->value.IsInt())
WMap[WareID].IssuesCounters[itCounters->name.GetString()] = itCounters->value.GetInt();
}
}
itMember = it->value.FindMember("users-ro");
if (itMember != it->value.MemberEnd() && itMember->value.IsArray())
{
JSONArrayToStringSet(itMember->value,WMap[WareID].ROUsers);
}
itMember = it->value.FindMember("users-rw");
if (itMember != it->value.MemberEnd() && itMember->value.IsArray())
{
JSONArrayToStringSet(itMember->value,WMap[WareID].RWUsers);
}
}
}
}
}
示例2: Parse
bool JSASTProgram::Parse(const rapidjson::Value& value)
{
JSASTNode::Parse(value);
for (Value::ConstMemberIterator itr = value.MemberBegin();
itr != value.MemberEnd(); ++itr)
{
String name = itr->name.GetString();
if (name == "body")
{
ParseStatementArray(itr->value, body_);
}
if (name == "comments")
{
if (itr->value.IsArray())
{
for (Value::ConstValueIterator citr = itr->value.Begin();
citr != itr->value.End();
citr++)
{
JSASTComment* comment = new JSASTComment();
assert(citr->IsObject());
comment->Parse(*citr);
comments_.Push(comment);
}
}
}
}
return true;
}
示例3: parseState
void parseState(const std::string& tag, const rapidjson::Value& button, std::unordered_map<std::string, TexturePtr>& stateMap) {
for (auto it = button.MemberBegin(); it != button.MemberEnd(); it++) {
std::string name = it->name.GetString();
const rapidjson::Value& value = it->value;
TexturePtr texture(GCC_NEW Texture(tag, value["x"].GetDouble(), value["y"].GetDouble(), value["w"].GetDouble(), value["h"].GetDouble()));
stateMap.emplace(name, texture);
}
}
示例4: applyConfigToView
void Inspector::applyConfigToView(const rapidjson::Value &config)
{
for(rapidjson::Value::ConstMemberIterator it = config.MemberBegin();
it != config.MemberEnd(); ++it)
{
setTargetProperty(it->name.GetString(), it->value);
}
}
示例5: ToJSONValue
// Convert rapidjson value to JSON value.
static void ToJSONValue(JSONValue& jsonValue, const rapidjson::Value& rapidjsonValue)
{
switch (rapidjsonValue.GetType())
{
case kNullType:
// Reset to null type
jsonValue.SetType(JSON_NULL);
break;
case kFalseType:
jsonValue = false;
break;
case kTrueType:
jsonValue = true;
break;
case kNumberType:
if (rapidjsonValue.IsInt())
jsonValue = rapidjsonValue.GetInt();
else if (rapidjsonValue.IsUint())
jsonValue = rapidjsonValue.GetUint();
else
jsonValue = rapidjsonValue.GetDouble();
break;
case kStringType:
jsonValue = rapidjsonValue.GetString();
break;
case kArrayType:
{
jsonValue.Resize(rapidjsonValue.Size());
for (unsigned i = 0; i < rapidjsonValue.Size(); ++i)
{
ToJSONValue(jsonValue[i], rapidjsonValue[i]);
}
}
break;
case kObjectType:
{
jsonValue.SetType(JSON_OBJECT);
for (rapidjson::Value::ConstMemberIterator i = rapidjsonValue.MemberBegin(); i != rapidjsonValue.MemberEnd(); ++i)
{
JSONValue& value = jsonValue[String(i->name.GetString())];
ToJSONValue(value, i->value);
}
}
break;
default:
break;
}
}
示例6: PrintValue
void PrintValue(rapidjson::Value &value)
{
rapidjson::Type type = value.GetType();
if (type == rapidjson::Type::kNumberType)
{
printf("%d", value.GetInt());
}
else if (type == rapidjson::Type::kStringType)
{
printf("%s", value.GetString());
}
else if (type == rapidjson::Type::kTrueType)
{
printf("가능");
}
else if (type == rapidjson::Type::kFalseType)
{
printf("불가능");
}
else if (type == rapidjson::Type::kArrayType)
{
for (int i = 0; i < value.Size(); i++)
{
PrintValue(value[i]);
if (i < value.Size() - 1)
printf(", ");
}
printf("\n");
}
else if (type == rapidjson::Type::kObjectType)
{
for (auto iter = value.MemberBegin(); iter != value.MemberEnd(); iter++)
{
rapidjson::Value &member = iter->value;
std::string name = iter->name.GetString();
if (member.GetType() == rapidjson::Type::kObjectType || member.GetType() == rapidjson::Type::kArrayType)
{
printf("\n- %s -\n", name.c_str());
PrintValue(member);
}
else
{
printf("%s : ", name.c_str());
PrintValue(member);
printf("\n");
}
}
}
else
{
printf("Null");
}
}
示例7: read_print_for_array
void Json_Parser::read_print_for_array(rapidjson::Value &va,int i){
if (va.IsBool()) {
const bool flag=va.GetBool();
CCLOG("%d:%d",i,flag);
}
else if (va.IsDouble()) {
const double flag=va.GetDouble();
CCLOG("%d:%f",i,flag);
}
else if (va.IsInt()) {
const int flag=va.GetInt();
CCLOG("%d:%d",i,flag);
}
else if (va.IsString()) {
const std::string flag=va.GetString();
CCLOG("%d:%s",i,flag.c_str());
}
else if (va.IsNull()) {
CCLOG("%d:null",i);
}
else if(va.IsObject())
{
CCLOG("obj----------%d",i);
auto it=va.MemberBegin();
for (;it!=va.MemberEnd();it++) {
if (va.HasMember(it->name)) {
read_print(va,it->name.GetString());
}
}
}
else if(va.IsArray())
{
CCLOG("array-------%d",i);
for (int i=0; i<va.Size();i++) {
read_print_for_array(va[i],i);
}
}
}
示例8: read_to_map_for_array
void Json_Parser::read_to_map_for_array(cocos2d::ValueVector &temp,rapidjson::Value &va,int i){
CCLOG("dex:%d",i);
if (va.IsBool()) {
const bool flag=va.GetBool();
temp.push_back(Value(flag));
}
else if (va.IsDouble()) {
const double flag=va.GetDouble();
temp.push_back(Value(flag));
}
else if (va.IsInt()) {
const int flag=va.GetInt();
temp.push_back(Value(flag));
}
else if (va.IsString()) {
const std::string flag=va.GetString();
temp.push_back(Value(flag));
// CCLOG("++:%d",temp.size());
}
else if (va.IsNull()) {
temp.push_back(Value(nullptr));
}
else if(va.IsObject())
{
cocos2d::ValueMap temp2;
auto it=va.MemberBegin();
for (;it!=va.MemberEnd();it++) {
if (va.HasMember(it->name)) {
read_to_map(temp2,va,it->name.GetString());
}
}
temp.push_back(Value(temp2));
// CCLOG("mapinvectro层:%lu",temp2.size());
}
else if(va.IsArray())
{
cocos2d::ValueVector temp2;
for (int i=0; i<va.Size();i++) {
read_to_map_for_array(temp2,va[i],i);
}
temp.push_back(Value(temp2));
// CCLOG("vectorinvectro层:%lu",temp.size());
}
}
示例9: loadChildren
bool PropertyItemType::loadChildren(const rapidjson::Value &config)
{
for(rapidjson::Value::ConstMemberIterator it = config.MemberBegin();
it != config.MemberEnd(); ++it)
{
PropertyItemType *child = new PropertyItemType();
child->key_ = it->name.GetString();
if(!child->loadValue(it->value))
{
delete child;
return false;
}
this->items_.push_back(child);
}
return true;
}
示例10: handleChildren
void SettingRegistry::handleChildren(const rapidjson::Value& settings_list, std::list<std::string>& path, SettingsBase* settings_base, bool warn_duplicates)
{
if (!settings_list.IsObject())
{
logError("ERROR: json settings list is not an object!\n");
return;
}
for (rapidjson::Value::ConstMemberIterator setting_iterator = settings_list.MemberBegin(); setting_iterator != settings_list.MemberEnd(); ++setting_iterator)
{
handleSetting(setting_iterator, path, settings_base, warn_duplicates);
if (setting_iterator->value.HasMember("children"))
{
std::list<std::string> path_here = path;
path_here.push_back(setting_iterator->name.GetString());
handleChildren(setting_iterator->value["children"], path_here, settings_base, warn_duplicates);
}
}
}
示例11: printObj
void printObj(const rapidjson::Value& data) {
if (data.IsObject()) {
for (rapidjson::Value::ConstMemberIterator itr = data.MemberBegin(); itr != data.MemberEnd(); ++itr) {
printf("obj[%s] = ", itr->name.GetString());
switch (itr->value.GetType()) {
case 0:
printf("IsNull!");
break;
case 1:
printf("False");
break;
case 2:
printf("True");
break;
case 3:
// IsObject
printf("{\n");
printObj(itr->value);
printf("}\n");
break;
case 4:
// IsArray
printf("[\n");
printObj(itr->value);
printf("]\n");
break;
case 5:
printf("%s", itr->value.GetString());
break;
case 6:
printf("%d", itr->value.GetInt());
break;
}
printf("\n");
}
} else {
for (rapidjson::SizeType i = 0; i < data.Size(); i++) {
printf("{\n");
printObj(data[i]);
printf("}, \n");
}
}
}
示例12: loadJobs
//-----------------------------------------------------------------------------------
void HlmsJsonCompute::loadJobs( const rapidjson::Value &json, const HlmsJson::NamedBlocks &blocks )
{
HlmsCompute *hlmsCompute = mHlmsManager->getComputeHlms();
StringVector pieceFiles;
rapidjson::Value::ConstMemberIterator itJob = json.MemberBegin();
rapidjson::Value::ConstMemberIterator enJob = json.MemberEnd();
while( itJob != enJob )
{
if( itJob->value.IsObject() )
{
const String jobName( itJob->name.GetString(), itJob->name.GetStringLength() );
pieceFiles.clear();
rapidjson::Value::ConstMemberIterator itor = itJob->value.FindMember( "pieces" );
if( itor != itJob->value.MemberEnd() && itor->value.IsString() )
pieceFiles.push_back( itor->value.GetString() );
else if( itor != itJob->value.MemberEnd() && itor->value.IsArray() )
{
const rapidjson::Value &jsonArray = itor->value;
for( rapidjson::SizeType i=0; i<jsonArray.Size(); ++i )
{
if( jsonArray[i].IsString() )
pieceFiles.push_back( jsonArray[i].GetString() );
}
}
itor = itJob->value.FindMember( "source" );
if( itor != itJob->value.MemberEnd() && itor->value.IsString() )
{
HlmsComputeJob *job = hlmsCompute->createComputeJob( jobName, jobName,
itor->value.GetString(),
pieceFiles );
loadJob( itJob->value, blocks, job, jobName );
}
}
++itJob;
}
}
示例13: parsePayload
bool IdMessage::parsePayload(rapidjson::Value& value, IceServalBridge* bridge)
{
if (false == value.IsObject())
{
_log->error("Payload could not be parsed: Is not an object");
return false;
}
for (auto it = value.MemberBegin(); it != value.MemberEnd(); ++it)
{
if (false == it->name.IsString() || false == it->value.IsString())
{
_log->error("Payload could not be parsed: Id is not a string");
return false;
}
this->ids.push_back(std::make_tuple(it->name.GetString(), it->value.GetString()));
}
return true;
}
示例14: Deserialize
void CPlayer::Deserialize(rapidjson::Value& json)
{
for (rapidjson::Value::MemberIterator it = json.MemberBegin(); it != json.MemberEnd(); ++it) {
if (it->value.IsInt()) {
SetFieldInt(GetFieldType(it->name.GetString()), it->value.GetInt());
}
else if (it->value.IsInt64()) {
SetFieldI64(GetFieldType(it->name.GetString()), it->value.GetInt64());
}
else if (it->value.IsString()) {
SetFieldStr(GetFieldType(it->name.GetString()), it->value.GetString());
}
else if (it->value.IsArray()) {
}
else if (it->value.IsObject()) {
}
}
}
示例15: load_config
bool Account::load_config(rapidjson::Value& obj)
{
if (!obj.IsObject()) {
return false;
}
m_properties["Name"] = m_name;
m_protocol = Protocol::from_object(obj["Protocol"], obj["Config"]);
obj.RemoveMember("Config");
if (obj.HasMember("Interval") && obj["Interval"].IsUint()) {
unsigned interval = obj["Interval"].GetUint();
if (interval > 0) {
m_interval = interval;
}
}
for (auto it = obj.MemberBegin(); it != obj.MemberEnd(); ++it) {
if (Application::read_event(m_notifications, it)) {
it->value.SetNull();
}
}
Application::generate_properties("", m_properties, obj);
return m_protocol != nullptr;
}