当前位置: 首页>>代码示例>>C++>>正文


C++ JSONElement::getType方法代码示例

本文整理汇总了C++中JSONElement::getType方法的典型用法代码示例。如果您正苦于以下问题:C++ JSONElement::getType方法的具体用法?C++ JSONElement::getType怎么用?C++ JSONElement::getType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在JSONElement的用法示例。


在下文中一共展示了JSONElement::getType方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: append

void JSONElement::append(const JSONElement& element)
{
    if(!_json) {
        return;
    }

    switch(element.getType()) {
    case cJSON_False:
        cJSON_AddFalseToObject(_json, element.getName().mb_str(wxConvUTF8).data());
        break;

    case cJSON_True:
        cJSON_AddTrueToObject(_json, element.getName().mb_str(wxConvUTF8).data());
        break;

    case cJSON_NULL:
        cJSON_AddNullToObject(_json, element.getName().mb_str(wxConvUTF8).data());
        break;

    case cJSON_Number:
        cJSON_AddNumberToObject(_json, element.getName().mb_str(wxConvUTF8).data(), element.getValue().GetLong());
        break;

    case cJSON_String:
        cJSON_AddStringToObject(_json,
                                element.getName().mb_str(wxConvUTF8).data(),
                                element.getValue().GetString().mb_str(wxConvUTF8).data());
        break;

    case cJSON_Array:
    case cJSON_Object:
        cJSON_AddItemToObject(_json, element.getName().mb_str(wxConvUTF8).data(), element._json);
        break;
    }
}
开发者ID:capturePointer,项目名称:codelite,代码行数:35,代码来源:json_node.cpp

示例2: arrayAppend

void JSONElement::arrayAppend(const JSONElement& element) 
{
    if(!_json) {
       return;
    }

    cJSON* p = NULL;
    switch(element.getType()) {
    case cJSON_False:
        p = cJSON_CreateFalse();
        break;

    case cJSON_True:
        p = cJSON_CreateTrue();
        break;

    case cJSON_NULL:
        p = cJSON_CreateNull();
        break;

    case cJSON_Number:
        p = cJSON_CreateNumber(element.getValue().GetDouble());
        break;

    case cJSON_String:
        p = cJSON_CreateString(element.getValue().GetString().mb_str(wxConvUTF8).data());
        break;
    case cJSON_Array:
    case cJSON_Object:
        p = element._json;
        break;
    }
    if(p) {
        cJSON_AddItemToArray(_json, p);

    }
}
开发者ID:AndrianDTR,项目名称:codelite,代码行数:37,代码来源:json_node.cpp

示例3: getDocumentStr

string JSONUtil::getDocumentStr(const JSONElement& doc)
{
	string jsonText;
	if(doc.getType()==JSONElement::JSON_OBJECT)
		jsonText += "{";
	else
		jsonText += "[";
	if(doc.hasChildren())
	{
		for (int var = 0; var < (int)doc.getChildren().size(); ++var) {
			JSONElement* child = doc.getChildren().at(var);
			if(doc.getType()==JSONElement::JSON_OBJECT)
				jsonText += "\"" + child->getName() + "\":";
			if(child->getType()==JSONElement::JSON_OBJECT || child->getType()==JSONElement::JSON_ARRAY)
			{
				jsonText += getDocumentStr(*child);
			}
			else
			{
				if(child->getType()==JSONElement::JSON_STRING)
					jsonText += "\"" + child->getValue() + "\"";
				else
					jsonText += child->getValue();
			}
			if(var!=(int)doc.getChildren().size()-1)
			{
				jsonText += ", ";
			}
		}
	}
	if(doc.getType()==JSONElement::JSON_OBJECT)
		jsonText += "}";
	else
		jsonText += "]";
	return jsonText;
}
开发者ID:GYGit,项目名称:ffead-cpp,代码行数:36,代码来源:JSONUtil.cpp

示例4: readJSON

void JSONUtil::readJSON(string& json, const bool& isarray, JSONElement *par)
{
	if(json=="")
		return;
	string name, value;
	if(!isarray)
	{
		size_t stn = json.find("\"");
		while(stn!=string::npos && stn>0 && json.at(stn-1)=='\\')
		{
			stn = json.find("\"", stn+1);
			if(stn==0)
			{
				stn = string::npos;
			}
		}
		if(stn==string::npos)
			throw ("invalid json - no start '\"' found for name parameter");
		size_t enn = json.find("\"", stn+1);
		while(enn!=string::npos && enn>0 && json.at(enn-1)=='\\')
		{
			enn = json.find("\"", enn+1);
			if(enn==0)
			{
				enn = string::npos;
			}
		}
		if(enn==string::npos)
			throw ("invalid json - no end '\"' found for name parameter");
		if(stn!=enn-1)
			name = json.substr(stn+1, (enn-stn-1));
		//StringUtil::trim(name);
		json = json.substr(enn+1);
		StringUtil::trim(json);
		size_t vst = json.find(":");
		if(vst==string::npos)
			throw ("invalid json - no ':' found");
		else if(vst!=0)
			throw ("invalid json - invalid json - invalid string before ':' found");
		json = json.substr(vst+1);
	}
	JSONElement* element = new JSONElement;
	element->setName(name);

	StringUtil::trim(json);
	size_t env = json.find(",");
	size_t obs = json.find("{");
	size_t ars = json.find("[");
	if(obs==0)
	{
		readBalancedJSON(value, json, false, obs);
		element->setType(JSONElement::JSON_OBJECT);
	}
	else if(ars==0)
	{
		readBalancedJSON(value, json, true, ars);
		element->setType(JSONElement::JSON_ARRAY);
	}
	else if(env==string::npos)
	{
		value = json;
		json = "";
		element->setType(JSONElement::JSON_STRING);
	}
	else
	{
		if(obs!=string::npos && env==0 && (obs<ars || ars==string::npos))
		{
			readBalancedJSON(value, json, false, obs);
			element->setType(JSONElement::JSON_OBJECT);
		}
		else if(ars!=string::npos && env==0 && (ars<obs || obs==string::npos))
		{
			readBalancedJSON(value, json, true, ars);
			element->setType(JSONElement::JSON_ARRAY);
		}
		else if(obs!=string::npos && obs<env && (obs<ars || ars==string::npos))
		{
			readBalancedJSON(value, json, false, obs);
			element->setType(JSONElement::JSON_OBJECT);
		}
		else if(ars!=string::npos && ars<env && (ars<obs || obs==string::npos))
		{
			readBalancedJSON(value, json, true, ars);
			element->setType(JSONElement::JSON_ARRAY);
		}
		else
		{
			value = json.substr(0, env);
			json = json.substr(env+1);
			element->setType(JSONElement::JSON_STRING);
		}
	}
	if(value=="")
	{
		string ex = "invalid json - no value object found for name "+ name;
		throw (ex.c_str());
	}
	if(element->getType()!=JSONElement::JSON_OBJECT && element->getType()!=JSONElement::JSON_ARRAY)
	{
//.........这里部分代码省略.........
开发者ID:GYGit,项目名称:ffead-cpp,代码行数:101,代码来源:JSONUtil.cpp


注:本文中的JSONElement::getType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。