c++ 判断json字符串是否有效。

bool IsJsonData(std::string strData)
{
	if (strData[0] != '{')
		return false;

	int num = 1;
	for (int i=1; i<strData.length(); ++i)
	{
		if (strData[i] == '{')
		{
			++num;
		}
		else if (strData[i] == '}')
		{
			--num;
		}

		if (num == 0)
		{
			return true;
		}
	}

	return false;
}


void GetJsonStrings(string &strbuf, vector<string> &vecStr)
{
	string::iterator iBegin, iEnd;
	bool bFisrt = true;
	int num = 0;
	for (string::iterator it = strbuf.begin(); it != strbuf.end(); ++it)
	{
		if (*it == '{')
		{
			if (bFisrt)
			{
				bFisrt = false;
				iBegin = it;
			}
			
			++num;
		}
		else if (*it == '}')
		{
			--num;
			if (num == 0)
			{
				bFisrt = true;
				iEnd = it;
				string strTemp;
				strTemp.assign(iBegin, iEnd+1);
				vecStr.push_back(strTemp);
			}
		}
	}

	if (!vecStr.empty())
	{
		strbuf.assign(iEnd+1, strbuf.end());
	}
}


猜你喜欢

转载自blog.csdn.net/tajon1226/article/details/73865485