本文整理汇总了C++中JSONValue::GetChildNames方法的典型用法代码示例。如果您正苦于以下问题:C++ JSONValue::GetChildNames方法的具体用法?C++ JSONValue::GetChildNames怎么用?C++ JSONValue::GetChildNames使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JSONValue
的用法示例。
在下文中一共展示了JSONValue::GetChildNames方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ProcessExcludes
void JSBModule::ProcessExcludes()
{
// excludes
JSONValue root = moduleJSON_->GetRoot();
JSONValue excludes = root.GetChild("excludes");
if (excludes.IsObject())
{
Vector<String> childNames = excludes.GetChildNames();
for (unsigned j = 0; j < childNames.Size(); j++)
{
String classname = childNames.At(j);
JSBClass* klass = GetClass(classname);
if (!klass)
{
ErrorExit("Bad exclude klass");
}
JSONValue classexcludes = excludes.GetChild(classname);
Vector<String> functionNames = classexcludes.GetChildNames();
for (unsigned k = 0; k < functionNames.Size(); k++)
{
JSONValue sig = classexcludes.GetChild(functionNames[k]);
if (!sig.IsArray())
{
ErrorExit("Bad exclude defintion");
}
Vector<String> values;
for (unsigned x = 0; x < sig.GetSize(); x++)
{
values.Push(sig.GetString(x));
}
JSBFunctionSignature* fe = new JSBFunctionSignature(functionNames[k], values);
klass->AddFunctionExclude(fe);
}
}
}
}
示例2: ProcessHaxeDecl
void JSBModule::ProcessHaxeDecl()
{
// Haxe declarations
JSONValue root = moduleJSON_->GetRoot();
JSONValue decl = root.GetChild("haxe_decl");
if (decl.IsObject())
{
Vector<String> childNames = decl.GetChildNames();
for (unsigned j = 0; j < childNames.Size(); j++)
{
String classname = childNames.At(j);
JSBClass* klass = GetClass(classname);
if (!klass)
{
ErrorExit("Bad Haxe decl class");
}
JSONValue classdecl = decl.GetChild(classname);
for (unsigned k = 0; k < classdecl.GetSize(); k++)
{
klass->AddHaxeDecl(classdecl.GetString(k));
}
}
}
}
示例3: Load
void JSBModule::Load(const String &moduleJSONFilename)
{
ResourceCache* cache = JSBind::context_->GetSubsystem<ResourceCache>();
JSONFile* moduleJSONFile = cache->GetResource<JSONFile>(moduleJSONFilename);
if (!moduleJSONFile)
{
LOGERRORF("Couldn't load module json: %s", moduleJSONFilename.CString());
ErrorExit("Couldn't load module json");
}
JSONValue moduleJSON = moduleJSONFile->GetRoot();
JSONValue sources = moduleJSON.GetChild("sources");
JSONValue classes = moduleJSON.GetChild("classes");
JSONValue includes = moduleJSON.GetChild("includes");
JSONValue classes_rename = moduleJSON.GetChild("classes_rename");
JSONValue overloads = moduleJSON.GetChild("overloads");
JSONValue requires = moduleJSON.GetChild("requires");
HashMap<String, String> rename;
if (requires.IsArray())
{
for (unsigned j = 0; j < requires.GetSize(); j++)
{
requirements_.Push(requires.GetString(j));
}
}
if (classes_rename.IsObject())
{
Vector<String> childNames = classes_rename.GetValueNames();
for (unsigned j = 0; j < childNames.Size(); j++)
{
String classname = childNames.At(j);
String crename = classes_rename.GetString(classname);
rename[classname] = crename;
}
}
if (includes.IsArray())
{
for (unsigned j = 0; j < includes.GetSize(); j++)
{
includes_.Push(includes.GetString(j));
}
}
if (classes.IsArray())
{
for (unsigned j = 0; j < classes.GetSize(); j++)
{
String classname = classes.GetString(j);
if (rename.Contains(classname))
bindings_->RegisterClass(classname, rename[classname]);
else
bindings_->RegisterClass(classname);
}
}
if (overloads.IsObject())
{
Vector<String> childNames = overloads.GetChildNames();
for (unsigned j = 0; j < childNames.Size(); j++)
{
String classname = childNames.At(j);
JSBClass* klass = bindings_->GetClass(classname);
if (!klass)
{
ErrorExit("Bad overload klass");
}
JSONValue classoverloads = overloads.GetChild(classname);
Vector<String> functionNames = classoverloads.GetChildNames();
for (unsigned k = 0; k < functionNames.Size(); k++)
{
JSONValue sig = classoverloads.GetChild(functionNames[k]);
if (!sig.IsArray())
{
ErrorExit("Bad overload defintion");
}
Vector<String> values;
for (unsigned x = 0; x < sig.GetSize(); x++)
{
values.Push(sig.GetString(x));
}
//.........这里部分代码省略.........